我收到此异常
线程“main”中的异常java.lang.NumberFormatException:null
在java.lang.Integer.parseInt(Integer.java:542)
在java.lang.Integer.parseInt(Integer.java:615)
在Test.main(Main.java:10)
代码:
private void manageConnectedSocket(BluetoothSocket socket) {
Log.i(TAG, "Hurray!! I am here");
//
if (acceptThread != null) {
acceptThread.cancel();
acceptThread = null;
}
//
if (acceptThread == null) {
acceptThread = new AcceptThread();
acceptThread.start();
}
}
它在eclipse上正常运行,但在其他IDE上,它正在提供此异常。
答案 0 :(得分:0)
问题在于此行a[i]=Integer.parseInt(br.readLine());
在执行上述操作之前,您应该检查br.readLine() != null
。
您正在尝试将null
解析为整数。这就是错误所暗示的。
修改强>
根据{{3}},如果已到达流的末尾,则readLine()
会返回null
。
您的代码应如下所示:
import java.util.*;
import java.io.*;
class Test {
public static void main (String[] args) throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int a[]=new int[10],flag=1;
System.out.println("Enter The Nos.");
for(int i=0;i<=9;i++) {
String num = br.readLine();
if(num != null) {
a[i]=Integer.parseInt(num);
} else {
//a[i] = 0; // You might want to assign a[i] to some integer if the input number is null
}
}
int i=0;
do{
if(a[i]!=42)
System.out.println(a[i]);
else{ flag=0;break; }
i++;
}while(flag==1 && i < 10);
}
}
答案 1 :(得分:0)
异常是描述性的,您尝试将null解析为int。在调用parseInt()之前执行null检查。检查br的null函数
是很好的print table
Email Purchaser order_id amount
0 a@gmail.com a@gmail.com 1 5
1 b@gmail.com NaN NaN NaN
2 c@gmail.com c@gmail.com 2 10
3 c@gmail.com c@gmail.com 3 5
table['Purchaser'] = table['Purchaser'].replace(np.nan, 'dummy')
print table
Email Purchaser order_id amount
0 a@gmail.com a@gmail.com 1 5
1 b@gmail.com dummy NaN NaN
2 c@gmail.com c@gmail.com 2 10
3 c@gmail.com c@gmail.com 3 5
table1 = table.groupby(['Email', 'Purchaser']).agg({'amount': np.sum, 'order_id': 'count'})
print table1
order_id amount
Email Purchaser
a@gmail.com a@gmail.com 1 5
b@gmail.com dummy 0 NaN
c@gmail.com c@gmail.com 2 15
table1 = table1.reset_index()
table1['Purchaser'] = table1['Purchaser'].replace('dummy', np.nan)
print table1
Email Purchaser order_id amount
0 a@gmail.com a@gmail.com 1 5
1 b@gmail.com NaN 0 NaN
2 c@gmail.com c@gmail.com 2 15
然后解析它。
您的输入可能包含空格,因此java无法将其转换为数字,例如&#34; 4 5&#34;为此,您可以用&#34;&#34;替换所有空格。然后尝试将其转换为数字。
br.readLine() != null
您的代码如下所示,
br.readLine().replaceAll("\\s+", "");