我是java新手,几乎没有时间学习它。其实我的问题有点尴尬,也没什么意义。我正在尝试从用户输入中获取字母。我知道有更有效的方法可以做到这一点,但我只想知道这种方法有什么问题。问题是,当我编写一个不包含任何空格的字符串时,程序正常,但如果我编写一个包含空格的字符串,程序就会停止工作。
Scanner qx = new Scanner(System.in);
String a = qx.next();
for(int b = 0; b<a.length();b++){
char z = a.charAt(b);
System.out.print(z + " ");
}
例如:当我写"Hi there"
时(不带引号)
我期望输出 "H i t h e r e"
但它只显示"H i "
如果我写"Hithere"
它会显示"H i t h e r e "
那么为什么有空格和没有空格会有区别呢?
另外,我对我的语法感到抱歉。我已经尽力了,但我已经很长时间没有练习了。
最佳答案
当我开始用java编码时,我也遇到了同样的问题。就像读取混合有整数和字符串的输入一样。
例如:
如果你想阅读...
5 // as an Integer
Hi there // as a string
你必须这样编码
Scanner in = new Scanner(System.in);
int number = in.nextInt();
in.next();
String str = in.nextLine();
我将额外的 in.next() 将缓冲区移动到下一行(因为它仅在读取后位于同一行的末尾)整数)。
所以,现在回到你的问题,next()只会读取字节,直到出现空格为止。因此,如果您想读取一整行输入,则必须使用 nextLine()。 nextLine() 将读取整行。
关于java - 获取字符串中的字母。为什么我的代码不能很好地工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56320267/