0

我基本上想要做的是我首先将一个字符“123”写入文件test2.txt。然后我读取它,将读取的值存储在变量 z(char datatype) 中,并将其与 (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);}
    }
}
4

1 回答 1

4

z 是一个字符串,应该使用 equal() 方法进行比较

尝试这样做:

    if ("123".equals(z))
    {
        System.out.println("MATCH");
    }
    else
    {
        System.out.println("NO MATCH");
    }

在此处比较字符串的更多信息:

如何比较 Java 中的字符串?

于 2013-12-04T11:50:48.233 回答