Java学习笔记
Java学习记录
旨在记录学习过程,学会解决问题
细节决定成败
Java基础
通过终端输入的汉字打印出来为?的问题解决
import java.util.Scanner;
public class InputData {
public static void main(String[] args) {
Scanner scanner1 = new Scanner(System.in);
String str = scanner1.nextLine();
System.out.println(str);
}
}
中文输入为问号
根据以往经验,开始查找是不是哪里编码没对,在查看了源文件,编码方式均为utf-8时,排除了文件编码和编译问题
之后我又把cmd终端的显示编码从GBK改成了utf-8 (使用命令chcp 65001
转换)
结果还是乱码。迫不得已查百度,通过实践发现,通过终端输入的汉字一定是以GBK模式编码的,不管终端的编码是哪种方式
下面是设置Scanner方法的识别编码为"GBK",即在终端中以GBK识别输入的汉字,最后大功告成!
// 导入Scanner类
import java.util.Scanner;
public class InputData {
// main入口
public static void main(String[] args) {
// 创建一个scanner1对象来接受终端输入的字符串
Scanner scanner1 = new Scanner(System.in,"GBK"); //
// 创建str接受输入的字符串 scanner1.nextLine(); 字符串是以"\n"为分隔符
String str = scanner1.nextLine();
// 而 scanner1.nextLine(); 接受的字符串是以' '空格符为分隔符
// String str = scanner1.nextLine();
// 打印输出str
System.out.println(str);
}
}