起因
Horstmann编写的《Java核心技术》中通过UTF-16编码格式来讲解char和String的用法和细节。例如:辅助字符𝕆。
为此我将第三章练习项目的文件编码格式更改为UTF-16。并以此练习输入与输出。
以下为书中源代码:
import java.util.*;
/**
* This program demonstrates console input.
* @version 1.10 2004-02-10
* @author Cay Horstmann
*/
public class InputTest
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
// get first input
System.out.print("What is your name? ");
String name = in.nextLine();
// get second input
System.out.print("How old are you? ");
int age = in.nextInt();
// display output on console
System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
}
}
问题
进行第二次输入时,报错。
之后进行多次尝试,发现只要是输入数字型就会出错。而其它类型则正常。
猜测原因
编码格式的冲突。
不完全的解决办法
修改文件的编码格式为GBK,可以正常运行。