如何解决输入中“nextLine()”的问题

我能理解为什么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;


慕哥9229398
浏览 135回答 1
1回答

桃花长相依

scan.nextLine()您需要在调用后添加一个调用scan.nextInt();,而不是使用其中的值:int&nbsp;b=scan.nextInt(); scan.nextLine();&nbsp;//Add&nbsp;this&nbsp;line这是因为nextInt()不会消耗用于nextLine()确定行结束的行终止符,并且额外的调用nextLine()将正确地为您消耗它。基本上,在你给它赋值之前2,例如,nextInt()将采用2,然后nextLine()将采用2THAT 行之后的所有内容,这将是什么。next如果您将ornextInt与混合使用,则始终需要执行此操作nextLine。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java