为了账号安全,请及时绑定邮箱和手机立即绑定

获取字符串中的字母。为什么我的代码不能正常工作?

获取字符串中的字母。为什么我的代码不能正常工作?

慕尼黑8549860 2022-12-15 15:16:55
我是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"But it only shows "H i "İf I would have written "Hithere" it would show"H i t h e r e "那么为什么有空格和没有空格的区别呢?另外,我为我的语法感到抱歉。我努力做到最好,但我已经很久没有练习了。
查看完整描述

4 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

当我开始用 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()将读取整行。


查看完整回答
反对 回复 2022-12-15
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

这就是.next()工作原理。它需要字符串直到第一个空格。这对你有用:


String a;

while(qx.hasNext){

a = a + qx.next();

}

然后继续你的循环。


查看完整回答
反对 回复 2022-12-15
?
噜噜哒

TA贡献1784条经验 获得超7个赞

next返回不超过一个空白字符(空格、制表符、回车)的任何字符串。

您需要使用nextLinewhich 返回回车符(也称为回车符)之前的任何字符串。


查看完整回答
反对 回复 2022-12-15
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

此代码将帮助您从主字符串中提取确切的子字符串


public static void main (String [] args) {


Scanner input = new Scanner (System.in);

System.out.println("Enter a String");

String name = input.next();

/*from this line it will extract the charcter from the string

 * according to tour indexes given

 */

String subString = name.substring(0, 3);

System.out.println("Substring is :"+subString);


}


查看完整回答
反对 回复 2022-12-15
  • 4 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信