为了账号安全,请及时绑定邮箱和手机立即绑定

关于input.next()输入问题

我在MyEclipse里面调用String s1=input.next();当输入:语文+空格+回车;得到的s1确是:yu语文;不知道怎么回事呀?好像有的时候能得到正确结果

正在回答

4 回答

会不会是你输入法问题,空格直接把输入英文也算进去了,换个输入法试试?

这段代码虽然很多不规范的地方,但我在eclipse上运行没什么问题

0 回复 有任何疑惑可以回复我~
#1

慕函数1733451 提问者

非常感谢!
2017-04-12 回复 有任何疑惑可以回复我~
#2

慕函数1733451 提问者

这段代码哪些地方不规范呢?能不能帮忙指出来呀!根据我多次输入的经验,我感觉,输入的时候注意点击光标换行就不会有问题,如果在“请输入图书名称:”后面直接输入就有可能出现问题,也是奇了怪了
2017-04-12 回复 有任何疑惑可以回复我~
package 模拟借书系统;     //包名一般用英文字母小写,倒写域名加模块名加功能名,用"."分割成四级
import java.util.Scanner;
import java.util.InputMismatchException; 
public class rendBook {     //类名命名遵从大驼峰原则,首字母要大写,应为RendBook
 
    public static void main(String[] args) throws Exception {    //不是很明白为什么要在这里抛异常
        // TODO Auto-generated method stub
       String[] book={"语文","数学","英语","政治","历史","地理"};
       
       boolean x=true;      //见第51行
       do{
           Scanner input=new Scanner(System.in);        //建议把input放到循环外面,并在循环结束后关闭input,input.closed()
           System.out.println("请输入命令:1-按照名称查找图书;2-按照序号查找图书");
           try{
               int order=input.nextInt(); 
               if(order!=1&&order!=2)
                   throw new Exception("请按提示输入数字");     //括号内不必写入内容
               if(order==1){
                   System.out.println("请输入图书名称:");
                   String s1=input.next();
                   System.out.println(s1);
                   for(int i=0;i<book.length;i++){
                       if(book[i].equals(s1)){
                           System.out.println("有这本书:"+book[i]);
                           break;
                       }
                       if(i==book.length-1)
                           System.out.println("图书不存在!");
                   }
                    
               }
               else{
                   System.out.println("请输入图书序号:");
                   int num=input.nextInt();
                   if(num>book.length){
                       System.out.println("图书不存在!");    
                   }
                   else{
                       System.out.println("有这本书:"+book[num-1]);
                   }
               }
             break;  
           }
           catch(InputMismatchException e){
            System.out.println("输入有误,请重新输入!");      
            //input.next();
           } 
           catch(Exception e){
               System.out.println("请按提示输入数字,谢谢合作!");
               }
       }while(x);       //while(true)就行,第10行可以省略
          
       }
 
}
//还有一些空格缩进问题,写完最好ctrl+shift+f格式化一下

在eclipse控制台输入一般换行输入

https://yq.aliyun.com/articles/69327

这是阿里的编程规范,你可以下载参考下

0 回复 有任何疑惑可以回复我~
#1

慕函数1733451 提问者

这么多注释呀!!呵呵
2017-04-13 回复 有任何疑惑可以回复我~


package 模拟借书系统;
import java.util.Scanner;
import java.util.InputMismatchException; 
public class rendBook {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
       String[] book={"语文","数学","英语","政治","历史","地理"};
      
       boolean x=true;
       do{
    	   Scanner input=new Scanner(System.in);
    	   System.out.println("请输入命令:1-按照名称查找图书;2-按照序号查找图书");
    	   try{
    		   int order=input.nextInt(); 
    		   if(order!=1&&order!=2)
    			   throw new Exception("请按提示输入数字");
    		   if(order==1){
    			   System.out.println("请输入图书名称:");
    			   String s1=input.next();
    			   System.out.println(s1);
    			   for(int i=0;i<book.length;i++){
    				   if(book[i].equals(s1)){
    					   System.out.println("有这本书:"+book[i]);
    					   break;
    				   }	
    				   if(i==book.length-1)
        				   System.out.println("图书不存在!");
    			   }
    			   
    		   }
    		   else{
    			   System.out.println("请输入图书序号:");
    			   int num=input.nextInt();
    			   if(num>book.length){
    				   System.out.println("图书不存在!");	   
    			   }
    			   else{
    				   System.out.println("有这本书:"+book[num-1]);
    			   }
    		   }
    		 break;  
    	   }
    	   catch(InputMismatchException e){
    		System.out.println("输入有误,请重新输入!");
    		//input.next();
    	   } 
    	   catch(Exception e){
    		   System.out.println("请按提示输入数字,谢谢合作!");
    		   }
       }while(x);
         
       }

}


0 回复 有任何疑惑可以回复我~

代码截图

0 回复 有任何疑惑可以回复我~
#1

慕函数1733451 提问者

贴在下面了!!
2017-03-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于input.next()输入问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信