当我正在转换的字符串是 int 时,我似乎无法弄清楚为什么它会抛出 NFE
[代码]
public void setCurrentTransferRate(){
try{
long startTime = System.currentTimeMillis();
String[] command = {"/bin/sh", "-c", "ifconfig " + interface_name + " | grep -oP 'RX bytes:[0-9]{1,11}'"};
String[] command1 = {"/bin/sh", "-c", "ifconfig " + interface_name + " | grep -oP 'TX bytes:[0-9]{1,11}'"};
Process child = Runtime.getRuntime().exec(command);
Process child1 = Runtime.getRuntime().exec(command1);
BufferedReader r = new BufferedReader(new InputStreamReader(child.getInputStream())); //i prwti metrisi twn RX kai TX bytes
BufferedReader r1 = new BufferedReader(new InputStreamReader(child1.getInputStream()));
String temp = r.readLine();
temp = temp.replace("RX bytes:","");
String temp1 = r1.readLine();
temp1 = temp1.replace("TX bytes:","");
r.close();
r1.close();
int x = Integer.parseInt(temp);
int y = Integer.parseInt(temp1);
}catch(IOException e){e.printStackTrace();}
catch(InterruptedException e){e.printStackTrace();}
}[/code]
产生错误的字符串是 temp
我得到了错误
[代码]
Exception in thread "Thread-0" java.lang.NumberFormatException: For input string: "3262469144"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.parseInt(Integer.java:527)
at askisi1.General.setCurrentTransferRate(General.java:187)
at askisi1.General.<init>(General.java:27)
at askisi1.mainThread.run(mainThread.java:17)
at java.lang.Thread.run(Thread.java:722)[/code]
我真的可以用一双新鲜的眼睛看这个