Javaで共有される数字の検出方法


Javaで共有される数字を検出するためのいくつかの方法を紹介します。共有される数字とは、2つの整数の中で少なくとも1つの数字が共通して現れることを指します。

方法1: 文字列として比較する この方法では、2つの整数を文字列に変換し、文字列の中で共通する文字(数字)が存在するかどうかを確認します。

public static boolean hasSharedDigit(int num1, int num2) {
    String str1 = String.valueOf(num1);
    String str2 = String.valueOf(num2);

    for (int i = 0; i < str1.length(); i++) {
        if (str2.contains(String.valueOf(str1.charAt(i)))) {
            return true;
        }
    }

    return false;
}

方法2: 数字を比較する この方法では、2つの整数を10で割った余りを使用して、各桁の数字を比較します。

public static boolean hasSharedDigit(int num1, int num2) {
    while (num1 > 0) {
        int digit1 = num1 % 10;
        int tempNum2 = num2;

        while (tempNum2 > 0) {
            int digit2 = tempNum2 % 10;

            if (digit1 == digit2) {
                return true;
            }

            tempNum2 /= 10;
        }

        num1 /= 10;
    }

    return false;
}

これらの方法を使用すると、以下のように呼び出すことができます。

int num1 = 12345;
int num2 = 67890;
if (hasSharedDigit(num1, num2)) {
    System.out.println("共有される数字が存在します。");
} else {
    System.out.println("共有される数字はありません。");
}

これらの例では、2つの整数の中で共有される数字を検出する方法を示しています。他にもいくつかの方法がありますが、これらの方法は一般的なケースでうまく機能します。必要に応じて、コードを修正してカスタマイズすることもできます。