Eclipse中读文本首行数字出现 java.lang.NumberFormatException: For input string: "1"

原因: windos中的utf-8是UTF-8 BOM编码,文本首行有非法字符

在WINDOWS自带的记事本中,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。

  • 可以通过代码测试发现首行有非法字符
while ((line = br.readLine()) != null) {
	System.out.println(line );
	String[] split = line.split(",");
	System.out.println(split[0] +"is digit " + split[0].matches("\\d+"));
	char[] cArray = split[0].toCharArray();
	for (char cc : cArray) {
		System.out.println(Integer.toHexString(cc));
	}
}

非法字符feff

解决办法

将utf-8 bom 改成 utf-8就好了
我用的是notepad++。修改完后保存即可
使用notepad++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值