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

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

/ 猿问

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

qq_極D兂窷_0 2017-08-04 10:51:23

http://img1.sycdn.imooc.com/5983df870001bbd703050080.jpg   http://img1.sycdn.imooc.com/5983df860001b68f02540050.jpg

http://img1.sycdn.imooc.com/5983df8600018ec502480104.jpg  http://img1.sycdn.imooc.com/5983df860001b71c02430106.jpg

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 回答

已采纳
?
4everlynn

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

查看完整回答
反对 回复 2017-08-04
?
qq_懵懂的家伙_03613771

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

查看完整回答
反对 回复 2017-08-04
?
qq_人生如梦_143962079

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

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

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

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

添加回答

回复

举报

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