Java语法分析完整性检查

Java语法分析完整性检查,java,integer,parseint,Java,Integer,Parseint,我试图从字符串数组元素解析int。这是我的密码: String length = messageContents[k].replace("Content-Length:", "").replace(" ", ""); System.out.println("Length is: " + length); int test= Integer.parseInt(length); System.out.println返回以下内容:长度为:23 但是,当我试图将字符串解析为int时,会抛出java.l

我试图从
字符串
数组元素解析
int
。这是我的密码:

String length = messageContents[k].replace("Content-Length:", "").replace(" ", "");
System.out.println("Length is: " + length);
int test= Integer.parseInt(length);
System.out.println
返回以下内容:长度为:23

但是,当我试图将
字符串
解析为
int
时,会抛出
java.lang.NumberFormatException

java.lang.NumberFormatException: For input string: "23"
我有点困惑为什么23不能被解析成
int
。我只能假设那里有其他的角色在阻止它,但我一辈子都看不到它

有什么建议吗

谢谢

更新

Despite the String length having only two characters, Java reports its length as three:
Length is: '23'
Length of length variable is: 3
length.getBytes = [B@126804e

此字符串中可能有不可见的字符

我的想法是:使用带有模式/匹配器的正则表达式删除字符串中的所有非数字,然后对其进行解析。

尝试以下变体:

int test= Integer.parseInt(length.trim());

我注意到第一行有一个尾随“.”。也许是复制过去的错误?啊,是的,忽略它。复制粘贴错误。谢谢:)“我只能假设其中有其他字符在阻止它,但我一辈子都看不到它。”1)在
println
语句中的值周围加上单引号。2)
System.out.println(“这根字符串有多长?”+length.length())System.out.println(Arrays.toString(length.getBytes())来找到[50,51,13]-我认为13是回车符?13确实是回车符/换行符或
\n
字符。这就对它进行了排序,非常感谢!我假设字节13被修剪后算作空白?不确定。但是
trim()
将去除
字符串中大部分不可见的内容。