不得不承认Scanner类对英文输入支持是非常好的!但是针对中文输入,Scanner的传说中的阻塞问题就出来了!
请看下面的小程序:
import java.util.Scanner;
public class Test {
public static void main(String [] args) { new Test().start(); } public void start() { Scanner sc = new Scanner(System.in); while(true) { System.out.println("请输入用户名:"); String name = sc.next(); System.out.println("name = " + name); System.out.println("继续输入吗?(y/n)"); String sure = sc.next(); if(sure.equals("y")) { continue; } else { sc.close(); return; } } }
}
请复制运行,然后到判断继续输入吗?(y/n)的时候,一定要继续用搜狗输入法,并且不要切换到英文输入模式下就会看到如图所示的情况下,一直卡死。
我想这肯定是next()方法里面的readInput()方法导致的!
可是,这怎么解决呢?如果这样接受输入的话,势必影响用户的心情!
请恕小弟愚昧,实在找不到解决之法,请指教!
慕妹3242003
相关分类