Java学习笔记

寻技术 JAVA编程 2023年08月02日 75

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);
	}

}
image-20230711143159353
关闭

用微信“扫一扫”