实际上好像是这样的,第一次执行while语句时:由readline读出的是:i love this game!,因为其后有\n符。第二次执行时读出的是:Length: 14,此时我想取得Length后的数字,即附在其后的数据长度。第三次执行时读出的是:\n,这时string的值为"",即空字符串!随后再通过Length的长度,取出其余的所有字符!但Length转换不过来???????????
int len = 0; while ((string = bufferedreader.readLine ()) != null) { if( string.equals("") ) break; System.out.println(string); if( string.indexOf(":")!=-1 ) { string=string.substring( string.indexOf(":")+2); System.out.println(string); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ len = Integer.parseInt( string.trim() ) } } char[] charCSR=new char[ len ]; bufferedreader.read(charCSR, 0, len)
是这句的问题吧
java.lang.NumberFormatException:
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:476)错误
这个错误是说你转换的参数变量String string本身不符合数字类型,试试楼上的,去掉字符串的追尾空格
通过程序打印出string.length()为2,打印string的值为:14
这句之后,string 的值应该是“14\n\naaaaaaaaaaaaaa”
这能转化成Integer吗?是不是应该string=string.substring(string.indexOf(":"),string.indexOf(":")+2);
bufferedreader.read(charCSR, 0, Integer.parseInt( string ))
这两句写在while外面吗?那string 应该是 ""才是啊。
while ((string = bufferedreader.readLine ()) != null)
{
if( string.equals("") ) break; System.out.println(string);
if( string.indexOf(":")!=-1 ) { string=string.substring( string.indexOf(":")+2); System.out.println(string);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
len = Integer.parseInt( string.trim() )
}
}
char[] charCSR=new char[ len ];
bufferedreader.read(charCSR, 0, len)