【发布时间】:2019-04-28 06:22:19
【问题描述】:
我尝试了多种方法来查看它们是否会删除我的 CSV 文件中第一个条目的前导空格,但它们似乎都不起作用,我还确认我没有不小心在我的文件。
我使用了 String.replaceAll(" ", "")、String.trim()、String.strip(),但它们都不起作用。
for(int r = 0; r < 303; r++){
String s = file.nextLine();
s = s.replaceAll(" ", ""); //attempt to remove whitespace
str_arr = s.split(",");
for(int c = 0; c < 6; c++){
str_arr[c] = str_arr[c].strip(); //2nd attempt
System.out.println(str_arr[c]); //here it just prints the
number 64 with a space in
front of it
data_set[r][c] = Integer.parseInt(str_arr[c]);
}
}
确实删除了所有字符串的空格,它只是第一个条目号仍然具有前导空格,这导致行 Integer.parseInt(str_arr[c]) 返回 NumberFormatException (我知道这会返回,因为有前导空格)。
【问题讨论】:
-
“我知道这会返回,因为有一个前导空格” - 您是否进行了十六进制转储并验证“前导空格”是
0x20?它很可能不是空格,而是像 Unicode BOM 或不间断空格 (U+00A0) 之类的东西。 "我使用了 String.replaceAll(" ", "")、String.trim()、String.strip(),但它们都不起作用。" -
@JimGarrison 我不确定你的意思是什么,因为我只是一个业余程序员,所有这些复杂的事情对我来说都没有意义。那我该如何做一个十六进制转储呢?
-
可以分享一份csv吗?
-
@Jaja 我该怎么做,我似乎无法附加文件。
-
@Phillip,例如:放到云端分享链接