我能理解为什么nextLine()不起作用。如果我改变nextLine()我next()的输入不会接受所有短语 case 7: System.out.println("Press 1 to post on your wall \nPress 2 to post on a friend's wall"); int b=scan.nextInt(); if(b==1){ System.out.println("What do you want to post?"); String pm=scan.nextLine(); Message ms= new Message(loginUser.getUsername(),loginUser.getUsername() +" :"+ pm.toString()); message.add(ms); } if(b==2){ System.out.println("Whose wall do you want to post? (Write his/her username)"); String ph=scan.next(); for(int n = 0; n< users.size(); n++) { if(!loginUser.getUsername().equals(ph) && users.get(n).getUsername().equals(ph)){ System.out.println("What do you want to post?"); String postIt=scan.nextLine(); Message me= new Message( ph,ph +" : "+loginUser.getUsername() +" : " + postIt.toString() ); message.add(me); } } } luna=false; break;
1 回答
桃花长相依
TA贡献1860条经验 获得超8个赞
scan.nextLine()
您需要在调用后添加一个调用scan.nextInt();
,而不是使用其中的值:
int b=scan.nextInt(); scan.nextLine(); //Add this line
这是因为nextInt()
不会消耗用于nextLine()
确定行结束的行终止符,并且额外的调用nextLine()
将正确地为您消耗它。
基本上,在你给它赋值之前2
,例如,nextInt()
将采用2
,然后nextLine()
将采用2
THAT 行之后的所有内容,这将是什么。
next
如果您将ornextInt
与混合使用,则始终需要执行此操作nextLine
。
添加回答
举报
0/150
提交
取消