CMD编译后录入中文不能识别
跟着视频进行JAVA学习,按照视频内容进行代码编写
在CMD的过程中,如果录入中文的“男”或者“女”,总是提示我录入错误
下面截图就是整个过程。第一张是学习视频,第二张是我写的代码,第三张是编译。
将gender打印输出看看,值是否为输入的对应值。
你把gender的类型改成String,'男'和'女'改成 “男"和"女",用字符串比较试一下。
if( gender.equals("男") )
你的代码也没啥问题,但是也可能是输入缓冲区有多余的回车
你调试下,看看gender此时字符是什么,是不是\n
帮你对照过了,代码无误
不知道你这个问题是否已经解决, 如果还没有解决的话:问题原因是CMD默认的编码方式是ASCII,无法正确处理中文字符。为了解决这个问题,你可以按照以下步骤进行操作:
Scanner
类来接受用户的输入,而不是Console
类。因为Console
类在CMD中输入中文字符时会出错。修改你的代码如下:import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的性别(男/女):");
String gender = scanner.next();
System.out.println("你的性别是:" + gender);
}
}
javac Test.java
java -Dfile.encoding=UTF-8 Test
其中-Dfile.encoding=UTF-8
参数指定了使用UTF-8编码方式来运行代码。
这样,你就可以在CMD中正确录入中文字符了。
请注意,这种方式仅在CMD中有效,如果你在其他环境中运行代码(如IDE或其他终端),则不需要修改编码方式。