0 0

令人蛋疼的Scanner类0

不得不承认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()方法导致的!
可是,这怎么解决呢?如果这样接受输入的话,势必影响用户的心情!

请恕小弟愚昧,实在找不到解决之法,请指教!
2013年4月11日 21:41
  • 大小: 97.1 KB

2个答案 按时间排序 按投票排序

1 0

采纳的答案

这应该和控制台,还有和scanner的next方法有关系!任何输入法都会造成这样的情况!不信你可以试试,刚开始时输入用户名时,把光标放在“请输入用户名:”的开头,输入汉字看看,你会发现得到的"NAME="是和你输入的不匹配的!所以建议使用Scanner.nextLine().这种方式是不会错的!猜测next不能获取整个一行!

2013年4月12日 01:31
0 0

在Scanner中要输入字符串的话是要用Scanner.nextline()方法的,表示接受字符串

2013年4月12日 18:52

相关推荐

    Java SE程序 Scanner类

    Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序...

    8.javaScanner类.zip

    8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.java...

    Object类和Scanner类

    ### Object类和Scanner类 #### 一、Object类详解 **1.1 概述** 在Java语言中,`Object` 类是所有类的基础。它位于类层次结构的顶端,这意味着所有的类,无论显式还是隐式地,都直接或间接地继承自 `Object` 类。...

    07.【Scanner类、Random类、ArrayList类】.zip

    在Java编程语言中,`Scanner类`、`Random类`和`ArrayList类`是三个非常重要的基础组件,它们各自在不同的场景下发挥着关键作用。接下来,我们将详细探讨这三个类的功能、用法以及它们在实际编程中的应用。 首先,...

    Scanner类的用法

    `Scanner` 类的构造器可以根据不同的输入源创建对象,如 `System.in`(标准输入流,通常用于从键盘读取输入),或者文件路径(创建一个从指定文件读取的 `Scanner` 对象)。 2. **数据读取方法**: - `nextByte()...

    Scanner类输入--Eclipse

    在Java编程语言中,`Scanner`类是Java.util包下的一个核心类,它为我们提供了从标准输入设备(如键盘)或者文件中读取用户输入数据的功能。`Scanner`类是进行基本类型数据输入的主要工具,使得程序员能够方便地处理...

    Java中Scanner类的用法

    ### Java中Scanner类的用法 #### 一、概述 `Scanner`类是Java标准库中的一个类,属于`java.util`包的一部分。它在Java 5.0版本被引入,目的是为了简化输入输出控制的过程,相较于传统的输入输出流控制(如`...

    day07【Scanner类、Random类、ArrayList类】1

    今天我们学习了Java中的三个重要类:Scanner类、Random类和ArrayList类。这些类都是Java中的基础类,掌握它们是学习Java的基础。 首先,让我们了解什么是API。API(Application Programming Interface)是应用程序...

    Java中Scanner类的用法.doc

    Java 中 Scanner 类的用法 Java 中的 Scanner 类是 Java 5 中新增的一个类,用于扫描输入文本。它可以结合使用正则表达式和从输入流中检索特定类型数据项的方法,因此可以对字符串和基本类型(如 int 和 double)的...

    Scanner类next()方法例子最清晰小白参考

    一个简单的Scanner类的next()方法例子,最适合小白参考Scanner a = new Scanner(System.in); String v = a.next(); System.out.print("你输入的值是:"+ v); Scanner b = new Scanner(System.in); ...

    day003【Scanner类、Random类、ArrayList类】.pdf

    在本节内容中,我们将介绍Java编程语言中三个重要的类:Scanner类、Random类和ArrayList类。这三个类分别用于处理输入数据、生成随机数以及数据集合存储。在学习这些类的过程中,我们还将探讨如何通过Java的API文档...

    Scanner类的中的微妙关系

    Java中的Scanner类是一个非常实用的工具类,用于解析原始类型和字符串的简单文本扫描器。从Java 5开始引入,Scanner类可以读取来自各种输入源(例如,标准输入流System.in、字符串、文件等)的数据,并能使用正则...

    在Java中,Scanner类.zip

    Java中的`Scanner`类是Java.util包下的一个核心类,主要负责从各种输入源(如控制台、文件、字符串)读取数据。`Scanner`类提供了丰富的数据类型转换方法,使得程序员可以方便地获取不同类型的输入,如整数、浮点数...

    Java Scanner 类.pdf

    Java Scanner 类是Java标准库提供的一种输入处理类,主要用于从各种输入源(如键盘、文件、字符串等)读取用户输入的数据。它属于Java中的引用数据类型,这意味着使用Scanner类时,我们需要创建Scanner对象并调用其...

    Java Scanner类常见面试题及答案

    Java Scanner 类是Java IO包中的一个重要类,它主要用于从各种数据源,如键盘输入、文件、字符串等读取数据。面试中,Scanner类经常作为考察点,因为它在实际编程中有着广泛的应用。以下是关于Scanner类的一些常见...

    java中Scanner类的接收方法

    在Java编程语言中,`Scanner`类是Java.util包下的一个重要的输入处理工具,它用于从各种源(如系统输入流、文件、字符串)读取基本类型的数据和字符串。`Scanner`类提供了丰富的接收方法来方便程序员进行输入操作。...

Global site tag (gtag.js) - Google Analytics