在以下代码中:
import java.util.*;
public class test{
public static void main(String[] args){
System.out.println("".length());
}
}
输出为0.
但是在以下代码中:
import java.util.*;
public class test{
public static void main(String[] args){
System.out.println("Please enter a string: ");
Scanner stdin = new Scanner(System.in);
String st = stdin.next();
System.out.println(st.length());
System.out.println(st.equals(""));
}
}
当我输入“”或空字符串时,输出为:
2
false
我将std.next()
更改为std.nextLine()
,但输出结果相同。
当我将System.out.println(st.equals(""));
更改为System.out.println(st.equals(" "));
时
我输入“”或空格输出是:
1
false
为什么?
答案 0 :(得分:0)
输入""
是两个字符,这就是为什么你得到长度2而""
不等于一个空字符串的原因。至于输入" "
的第二种情况,你得到长度为1,因为String::next()
只能读取用户输入直到空格。它不能读取由空格分隔的两个单词,而且不等于空字符串。总而言之,在使用String::next()
时,您不能输入空字符串,甚至不能填充空格的字符串。您需要使用String::nextLine()
。
在阅读用户输入时,我们不能将空字符串表示为""
。 空字符串是一个长度为零的字符串。