Java parseInt:invalid int";0“;

Java parseInt:invalid int";0“;,java,int,parseint,Java,Int,Parseint,每当我想将Java中的字符串“0”解析为0(int)时,它就会抛出一个无效错误。 但是像“1”、“2”等字符串可以工作 更新:其他数字也不起作用 我正在从我的网页获取一个PHP文件的HTML源代码,这个网页只显示一个数字 代码: String[]result=sourceCode.trim().split(); for(int i=0;i0) { //做点什么 } 根据问题下方注释中提供的信息,结果表明您在字符串开头重复使用了。您可以执行以下操作将其删除: final String ZERO_

每当我想将Java中的字符串
“0”
解析为
0
(int)时,它就会抛出一个无效错误。
但是像
“1”
“2”
等字符串可以工作

更新:其他数字也不起作用

我正在从我的网页获取一个PHP文件的HTML源代码,这个网页只显示一个数字

代码:

String[]result=sourceCode.trim().split(
); for(int i=0;i0) { //做点什么 }

根据问题下方注释中提供的信息,结果表明您在字符串开头重复使用了。您可以执行以下操作将其删除:

final String ZERO_WIDTH_NO_BREAK_SPACE = "\uFEFF";
String good = result[0].replace(ZERO_WIDTH_NO_BREAK_SPACE, "");

此外,在所有这些字符之间还有一个隐藏的
选项卡。把它扔掉

good = good.replaceAll("\\s+", "");

根据问题下面的注释中提供的信息,结果表明您在字符串的开头重复使用了。您可以执行以下操作将其删除:

final String ZERO_WIDTH_NO_BREAK_SPACE = "\uFEFF";
String good = result[0].replace(ZERO_WIDTH_NO_BREAK_SPACE, "");

此外,在所有这些字符之间还有一个隐藏的
选项卡。把它扔掉

good = good.replaceAll("\\s+", "");

但是,如果值真的是
“1”
,两边都有一些额外的空格,那么调用
trim
不会做任何事情。@DavidWallace:请参阅我的更新答案。顺便说一句,U+FEFF可能是Unicode字节顺序标记(BOM),用于指示UTF-16或UTF-32文本的字节顺序,有时用于指示其他Unicode编码文本的编码。这是正确的,但不适用于这种情况(因为它重复了大约15次),但如果值真的是
“1”
,两边都有一些额外的空格,这不会做任何调用
trim
不会做的事情。@DavidWallace:请参阅我的更新答案。顺便说一下,U+FEFF可能是Unicode字节顺序标记(BOM),用于指示UTF-16或UTF-32文本的字节顺序,有时用于指示其他Unicode编码文本的编码。这是正确的,但在这种情况下不适用(重复大约15次)