我基本上想要做的是我首先在文件test2.txt中写一个字符“123”。然后我读取它,将读取值存储在变量z(char数据类型)中,并将其与(if)部分中的“123”进行比较。但它返回NO MATCH ...即使变量z的值为“123”(System.out.println(z)在屏幕上打印123)。为什么会这样?我还检查了test2.txt文件。它包含123与123后面的小L(由于什么?unicode转换或什么?),我认为根本问题。请帮忙。提前谢谢。
源代码:
import java.io.*;
public class readWrite
{
public static void main(String[]args)
{
RandomAccessFile file=null;
try{
file=new RandomAccessFile("test2.txt","rw");
file.writeUTF("123");
file.seek(0);
String z=file.readUTF();
if (z=="123")
{
System.out.println("MATCH");
}
else
{
System.out.println("NO MATCH");
}
}
catch(IOException e){System.out.println(e);}
}
}
答案 0 :(得分:4)
z是一个字符串,应使用equal()方法进行比较
尝试这样做:
if ("123".equals(z))
{
System.out.println("MATCH");
}
else
{
System.out.println("NO MATCH");
}
此处提供更多信息来比较字符串: