从Scanner出发的编码 GBK 的不可映射字符以及如何查找对应类在哪里

代码如下:

public class ScanTest{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		//sc.useDelimiter("\n");
		while(sc.hasNext()){
			System.out.println("键盘输入的内容为:"+sc.next());
		}
	}
}

命令行进行编译

D:\test1>javac ScanTest.java
ScanTest.java:6: 错误: 编码 GBK 的不可映射字符 (0x9A)
                        System.out.println("閿洏杈撳叆鐨勫唴瀹逛负锛?"+sc.next());
                                                         ^
1 个错误

第一个知识点

D:\test1>javac -encoding UTF-8 ScanTest.java

需要加上-encoding UTF-8

但是会报找不到类Scanner错误

第二个知识点
在这里插入图片描述
故代码中导入该类

import java.util.Scanner;
public class ScanTest{
	public static void main(String[] args){
		Scanner sc=new Scanner(System.in);
		//sc.useDelimiter("\n");
		while(sc.hasNext()){
			System.out.println("键盘输入的内容为:"+sc.next());
		}
	}
}

结果运行正常

D:\test1>java ScanTest
555
键盘输入的内容为:555
666
键盘输入的内容为:666
5555  6666
键盘输入的内容为:5555
键盘输入的内容为:6666

此时空格看成了分隔符,即认为是多个输入
如果把//sc.useDelimiter("\n");注释取消
则效果如下

D:\test1>java ScanTest
5555 6666
键盘输入的内容为:5555 6666

此时空格也看成是字符

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值