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

中文格式输入字符串时,光标在信息前面,而且把信息也变为绿色,不手动移动光标不能正常执行,怎么解决啊?

中文格式输入字符串时,光标在信息前面,而且把信息也变为绿色,不手动移动光标不能正常执行,怎么解决啊?

qq_極D兂窷_0 2017-08-04 10:51:23
     package frist;import java.util.Scanner;public class Test { static String[] book={"高数","数据结构","java","html","SQL","安卓"};//把图书信息放进数组 static boolean x=true;//定义一个布尔类型用来执行循环 Scanner input=new Scanner(System.in); public static void main(String[] args) throws OneTow {//住方法 // TODO 自动生成的方法存根   Test test=new Test();//创建对象用来调用test1方法  while(x){             //循环体  try { test.test1();      } catch (OneTow e) { // TODO 自动生成的 catch 块 System.out.println(e.getMessage());//test1命令输入错误时抛出异常                         }          }     } //方法一 public void test1() throws OneTow { Test test1=new Test();//新建一个对象 System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书。"); String c=input.nextLine(); //从键盘输入字符寸 if(c.equals("1")){     //如果相等,执行test2方法 try { test1.test2(); } catch (CatchName e) { // TODO 自动生成的 catch 块 System.out.println(e.getMessage());//test2方法输入命令错误,抛出异常 test1.test1();              //并返回执行test1方法 } } else if(c.equals("2")){      //如果相等,执行test3方法 try { test1.test3(); } catch (CatchName e) { // TODO 自动生成的 catch 块 System.out.println(e.getMessage());//test3方法输入命令错误,抛出异常 test1.test1();                  //并返回执行test1方法 } }else { throw new OneTow("命令输入错误!请根据提示输入命令。");//test1命令错误抛出的异常信息 } } //方法二:判断输入图书名称 public void test2() throws CatchName { int a=0;//用来判断是否抛出异常信息 System.out.println("输入图书名称"); String name=input.nextLine(); //输入图书名称 for(int i=0;i<book.length;i++)//遍历图书下标 { if(name.equals(book[i]))//判断是否相等 { a=1;          name=book[i];  //把book[i]的值赋值给name    break;         //跳出循环 } } if(a==1){          //判断如果a是1,输出图书名称,否则抛出异常信息 System.out.println("book:"+name);   x=false;       //把false赋值给x,用以在while循环体中跳出循环 } else { throw new CatchName("图书不存在");//抛出异常信息 } } //方法三 public void test3() throws CatchName { System.out.println("输入图书序号"); String no=input.nextLine();//输入图书序号 int b=0;//用来判断是否抛出异常信息 int d=0;//用来存储下标+1的信息 for(int j=1;j<=book.length;j++)//遍历图书下标 { String s=String.valueOf(j);//把 int类型的j转换为String,并且赋值给s if(no.equals(s))//判断字符串是否相等 { b=1; d=j;        //把j的值赋值给d; break;       //跳出循环 } } if(b==1)              //判断如果b是1,输出图书名称,否则抛出异常信息 { System.out.println("book:"+book[d-1]); x=false;           //把false赋值给x,用以在while循环体中跳出循环 } else {throw new CatchName("图书不存在!");}  //抛出异常信息 } }
查看完整描述

4 回答

已采纳
?
fatewa

TA贡献40条经验 获得超8个赞

这是IDE问题和你的代码没关系 打字的时候把光标移到需要输入的那一行即可

查看完整回答
反对 回复 2017-08-04
?
慕工程2701759

TA贡献16条经验 获得超17个赞

哇,我也以为是我代码哪里写的不好。

查看完整回答
反对 回复 2017-08-04
?
慕少3462033

TA贡献4条经验 获得超2个赞

这是软件的bug,不可避免。只能自己手动将光标切换到正确的位置

查看完整回答
反对 回复 2017-08-04
?
ONE_WAY

TA贡献5条经验 获得超10个赞

工具的问题,用的时候先切到英文输入法

查看完整回答
反对 回复 2017-08-04
  • 4 回答
  • 0 关注
  • 3281 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信