0

"A" 、 "B" 、 "C" が配列に存在するにもかかわらず、内部ループ内の if 条件がそれらを認識しないという私のコードのエラー。ABC は、String.split(""); を使用して分割された文字列からのものであることに注意してください。Javaのメソッド

public class Hexadecimal
{
    public static void main(String[] args)
    {
            String hex = "ABC";
            hToD(hex);
    }

    public static void hToD(String hexa)
    {
        String[] hexadecimal = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
        String[] value = hexa.split("");

        int deci = 0;
        int bit =0;

        for(int i = 0; i<value.length;i++)
        {
            for(int j = 0; j<hexadecimal.length;j++)
            {
                if(value[i] == hexadecimal[j])
                {
                    deci = deci + compute(j,bit++);
                    System.out.println(deci);
                }
            }
        }
    }

    public static int compute(int digit,int bit)
    {
        int ans = 0;
        if(bit == 0)
        {
            ans = digit * (1);
        }else
        {
            ans = digit * (16 * bit);
        }
        return ans;
    }
}
4

2 に答える 2

8

文字列を と比較しないでください==。いつも一緒s1.equals(s2)

前者は、両方のオブジェクトが同じであることをテストします (つまり、変数は同じ String オブジェクトを参照します)。後者は、両方の文字列の文字のシーケンスが同じであることをテストします。

于 2012-06-05T15:06:56.253 に答える
0

その内側の if ステートメントで == の代わりに . equals() を使用してみてください。

if(value[i].equals(hexadecimal[j]))
于 2012-06-05T15:10:27.513 に答える