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++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章