JAVA 先输入一个数字,先输入2个字符串,输完第一个字符就输出了,第二个字符串无法输入,怎么处理?

Stringstr1,str2;n=in.nextInt();str1=in.nextLine();str2=in.nextLine();System.out.print... String str1,str2;
n=in.nextInt();
str1=in.nextLine();
str2=in.nextLine();
System.out.println(n);
System.out.println("s1"+str1);
System.out.println("s2"+str2);
展开
 我来答
死后是好人
推荐于2018-04-24 · TA获得超过2638个赞
知道小有建树答主
回答量:628
采纳率:0%
帮助的人:963万
展开全部
你说的是在同一行输入2个字符串
那你要用
str1=in.next();
str2=in.next();
这样才能读取
你用nextLine();是读到回车符为止的,将整个一行作为一个字符串赋给String型变量
如果不改的话,你只需要在程序运行的时候将2个字符串分行输入即可
即输入完一个字符串后用回车而不是用空格开始第二个字符串的输入即可
追问
一行一个字符串,而且带空格的,in.next();不行
追答
哦,我测试了一下你的代码,我知道你的是什么问题了
你的
n=in.nextInt();取完数据后,int型数据的那行没有结束,最后一个回车符被当做字符串赋给str1了
如果你要的字符串和开始的整数用空格隔开,你就能看出问题了,示例输出:
3 sagjaij 43j ja5
asdfq wqhdj 1123154
3
s1 sagjaij 43j ja5
s2asdfq wqhdj 1123154
我们可以看到,str1就得到值了,跟3是同一行读取的
所以我们只需要
str1=in.nextLine();
str1=in.nextLine();
str2=in.nextLine();
把结尾那个回车符读取掉就行了
运行示例:
3
sdfa as aewa
dzf123 dasf3
3
s1sdfa as aewa
s2dzf123 dasf3
疏嘉o6
2011-09-19 · TA获得超过193个赞
知道答主
回答量:130
采纳率:0%
帮助的人:68.7万
展开全部
String str1,str2;
n=in.nextInt();
str1=in.nextLine();
str1=in.nextLine();//将str1重新赋值,用想输入的内容代替原来的回车
str2=in.nextLine();
System.out.println(n);
System.out.println("s1"+str1);
System.out.println("s2"+str2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wy5787
2011-09-18 · TA获得超过395个赞
知道小有建树答主
回答量:499
采纳率:0%
帮助的人:347万
展开全部
在n=in.nextInt();这句后面加上in = new Scanner(System.in);在Str1那句后面也加这么一句.
一个Scanner对象只控制输入一次吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式