Java:查找字符串长度时包含空格

时间:2016-10-03 02:41:54

标签: java string comparison

Scanner input = new Scanner(System.in); 
Scanner input2 = new Scanner(System.in);

System.out.println("Please enter a string: ");
String a = input.next();

System.out.println("Please enter another string: ");
String b = input2.next();

int s1 = a.length();
int s2 = b.length();
int i;

if(a.equalsIgnoreCase(b)){
   System.out.println(a.substring(i = 0, i + s2));
}

我正在尝试比较用户输入的2个字符串。字符串比较工作正常,但是,当我输入一个像空格一样的字符串 “我喜欢狗,”由于“i”和“like”之间的空间,它将字符串长度计为1而不是11。为什么程序不计算第一个空格后的空格或剩余字符?

2 个答案:

答案 0 :(得分:1)

next()方法如果匹配从指定字符串构造的模式,则返回下一个标记。

nextLine()方法使此扫描程序超过当前行并返回跳过的输入。

如果没有,您可以使用 java.io

的下方代码
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter a string");
String s = br.readLine();
System.out.println(s.length());

答案 1 :(得分:0)

使用input.next()时,空格被视为分隔扫描仪接受的标记的分隔符。因此,当扫描仪读入您的句子“我喜欢狗”时,它会找到由空白分隔的3个单独的标记。您可以使用扫描仪类的useDelimiter方法指定分隔符,例如

scanner scan = new Scanner(input).useDelimiter(insert parameters here);

或者只使用input.nextLine()方法将整行读入作为接受的标记。

String b = input.nextLine();