基本上我正在开发一个涉及矩阵的程序,我知道并且不能正确提供的矩阵可以是一个简单的数组,但这反驳了我在这里的目的。
无论如何,下面提供的代码提供了3种方法,每种方法都有一个代码,我试图比较这两个值,并且在每种情况下都失败了。如果有人能够指出错误,那就太棒了。
公共类TestingLength {public static String[][] locatedNum = {{"1","2","3"}};
public static int num = 3;
public static void test() {
System.out.println("Finding Number " + locatedNum[0][2] + " With Number " + num);
if(locatedNum[0][2] == ""+num) {
System.out.println("Example Worked!");
return;
}else
System.out.println("Example Failed!");
}
public static void test2() {
System.out.println("Finding Number " + locatedNum[0][2] + " With Number " + num);
if(locatedNum[0][2].equals(num)) {
System.out.println("Example Worked!");
return;
}else
System.out.println("Example Failed!");
}
public static void test3() {
String s = Integer.toString(num);
System.out.println("Finding Number " + locatedNum[0][2] + " With Number " + num);
if(locatedNum[0][2] == s) {
System.out.println("Example Worked!");
return;
}else
System.out.println("Example Failed!");
}
public static void main(String[] args) {
test();
test2();
test3();
}
}
答案 0 :(得分:2)
您的第一个示例有效,如果您更改
if(locatedNum[0][2] == ""+num) {
到
if(locatedNum[0][2].equals(""+num)) {
在这里,您要比较String
s,String
应始终使用.equals
进行比较。否则,您正在比较String
指针,这些指针大部分时间都不相同。
如果您更改
,您的第二次测试有效if(locatedNum[0][2].equals(num)) {
到
if(Integer.parseInt(locatedNum[0][2]) == num) {
在这种情况下,您要比较整数值,==
是一个有效的选择。但是,您必须将String
值从locatedNum
转换为整数值。
如果您更改
,您的第三次测试有效 if(locatedNum[0][2] == s) {
到
if(locatedNum[0][2].equals(s) {
如果您要比较字符串,请始终使用.equals
代替==
。
答案 1 :(得分:0)
您的第一个示例使用==来比较两个不是同一个对象的字符串。 (==说"你是同一个对象。)它可以和.equals一起使用。
你的第二个是陌生人,将字符串直接与int进行比较,而不使用之前用于转换为字符串的"" + num转换
你的第三个人有同样的问题。