import java.io.*;
public class TestOutput {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
while(str != null && str != "") {
System.out.println(str);
str = br.readLine();
}
br.close();
}
}import java.io.*;
public class TestOutput {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
while(str != null && str.length() != 0) {
System.out.println(str);
str = br.readLine();
}
br.close();
}
}
请问上面两段代码在输入回车时为什么是不一样的?str != "" 与 str.length() != 0难道不一样吗?我测试过输入回车是str的长度是0啊,而str = ""的长度就是为0啊。
equals()才可以用来比较两个对象的字面值是否相同
!str.equals("")) {
两种意义。
字符串是目标,不是基本型。==或者!=得比较是比较hashcode,不是比较里面的值。如果str不是null的话,
!"".equals(str)和 str.length() != 0可以达到相同的效果。
String str2="";
String str3=new String("");
System.out.println(str1==str2); //true
System.out.println(str1==str3); //false
System.out.println(str1.equals(str3)); //true
其他同楼上
if(!str.equals("") || str.length()!=0)
字符串有这个方法吗? 似乎是length似乎是字符串的字段来的,
这个问题我困扰了好久,不知道对不对
还是这个比较常见。推荐!15楼的 if(!str.equals() || str.length()!=0) 写法恐怕要出异常吧!不要尝试