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);
一行一个字符串,而且带空格的,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