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。为什么程序不计算第一个空格后的空格或剩余字符?
答案 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();