空字符串等于“”吗?

新手上路,请多包涵

初学 java,题目要求:在屏幕上显示“输入姓名”,然后将用户输入的姓名保存到文本文件中,重复进行,直到用户输入空字符串为止。

判断空字符时用 s.length() 是否为零可以实现结束输入,但是用 s != "" 或者 s != "\n" 均不可以。之前我一直以为空字符串就是 "",从代码结果来看好像并不是? 当我单单敲一个回车的时候,java 到底读到了什么?

public static void main(String[] args) throws IOException {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
    String s = bufferedReader.readLine();
    while(s.length() != 0) { //用 s != "" 不可以
        System.out.println(s);
        s = bufferedReader.readLine();
    }
}
阅读 3.7k
2 个回答

Java 中比对两个字符串使用 equals,如果是判定是否为空(""),可以这样:

s != null && !s.isEmpty()

另,参考 Chapter 3. Lexical Structure 第 3.10.5 节 String Literals 中的 Example 3.10.5-1. String Literals 实验部分。

不是同一个String对象,所以用 == 是不行的
但是内容相同,所以用 equals

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题