在处理中我一直在尝试从包含不同字符串的文本文件中读取。当使用saveStrings函数读取并进行比较时,它们总是不同的,即使get文件中的行似乎相等。我最近尝试使用saveStrings写入文本文件,但这也不起作用。
String lines[] = loadStrings("list.txt");
String list[] = {"1", "1"};
void test() {
saveStrings("data/list.txt", list);
println(lines[0] == lines[1]); //returns false
println("1" == "1"); //returns true
}
我只是在设置功能中调用该方法。
答案 0 :(得分:2)
请勿使用==
来比较String
值。请改用equals()
功能:
println(lines[0].equals(lines[1]));
您需要执行此操作,因为==
会比较两个String
值是否为同一个对象。 文字 "1"
等于自身,因此评估为true
。但是,您从文件中读取的两个String
值不是同一个对象,因此==
的计算结果为false
。
equals()
函数实际检查String
值内的字符,如果它们都包含相同的字符,则返回true
。
要比较两个字符串的内容,请使用equals()方法,如if(a.equals(b)),而不是if(a == b)。 String是一个Object,因此将它们与==运算符进行比较只会比较两个字符串是否存储在同一个内存位置。使用equals()方法将确保比较实际内容。 (troubleshooting reference有更长的解释。)