空格在java的控制台输入中究竟扮演着什么样的角色?

liyage1992 2012-03-15 05:05:39
import java.util.*;
public class Student1Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入a:");
String a=in.next();
System.out.println("请输入b:");
String b=in.next();
System.out.println("a="+a+"b="+b);
}

}
问题:
当程序运行至String a =in.nexe();时
如果我输入12空格13
则直接出结果
请输入a:
12 13
请输入b:
a=12b=13
为什么会出现这样的结果,我还没输入b值得呀~
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
VCXIAOHEI 2012-03-15
  • 打赏
  • 举报
回复
Scanner类的next方法,输入‘空格’默认为参数输入结束

例如:当提示你输入a时,输入的是:12 13 14 15;则显示的a=12b=13
后两个参数会被舍弃

可以尝试
System.out.println("请输入a:");
String a = in.nextLine();
System.out.println("请输入b:");
String b = in.nextLine();
这样写会达到你要的效果

以next开头的方法有很多,你可以自己试试玩玩……
Sai 2012-03-15
  • 打赏
  • 举报
回复

private static Pattern WHITESPACE_PATTERN = Pattern.compile("\\p{javaWhitespace}+");
public Scanner(InputStream paramInputStream)
{
this(new InputStreamReader(paramInputStream), WHITESPACE_PATTERN);
}


初始化Scanner调用的构造方法默认是以空白分割输入
菖蒲老先生 2012-03-15
  • 打赏
  • 举报
回复
输入空格就相当于你一次性输入了两个参数,
也就是a和b的值你一块输入了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧