我有一个字符串s,其中包含:
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
10011111 10011111 10011111 10011111 10011111 10011111 10011111
现在我使用了两次方法拆分。首先,我让couples = split("\n\n")
拥有行数组。
现在我想从一行中获取每个值,所以我做了:values = couples[i].split(" ")
。
我想用于每个值[i]代码:
(byte) Integer.parseInt(values[i], 2);
这样可以正常工作,但仅适用于couples[0]....couples[2]
中的值。对于couple [3]中的值(最后一个值),我有错误“java.lang.NumberFormatException”。我认为这与文件末尾有关。但我不知道如何解决这个问题。
答案 0 :(得分:0)
对于第二次拆分,请使用couples[i].split("\\s+")
,以便拆分任何类型的空白。否则,换行符会妨碍。
答案 1 :(得分:-1)
因为在每隔一行输入后你有两个连续的新行,所以couples[]
中的每三个条目都将为空。只需检查以确保字符串在解析之前不会为空。
if( values[i] != null && !values[i].isEmpty() )
(byte) Integer.parseInt( values[i], 2 );