我的代码中的错误是,即使数组中存在“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;
}
}
最佳答案
切勿将字符串与 ==
进行比较。始终使用 s1.equals(s2)
。
前者测试两个对象是否相同(即变量引用相同的 String 对象)。后者测试两个字符串的字符序列是否相同。
关于java - 即使语句有效,也不输入 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10899810/