如何使用使用扫描程序获取输入的ecllipse IDE来调试Java程序。我在谷歌搜索这个,但没有找到任何适当的解决方案。问题是我在读取输入时遇到了空指针异常,所以我想调试我的程序。
这是我的计划......
package p;
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
int[][] ar = new int[T][];
for(int i=0;i<T;i++){
int n;
{
n = in.nextInt();
}
for(int j=0;j<n;j++)
{
ar[i][j]=in.nextInt(); /*null pointer exception occurs here*/
}
}
for(int i=0;i<T;i++)
{ int count=0,i1,k;
for(int j=1;j<ar[i].length;j++)
{
k=ar[i][j];
for(i1=j-1; i1>=0 && k<ar[i][i1]; i--)
ar[i][i1+1]=ar[i][i1];
ar[i][i1+1]=k;
count++;
}
System.out.println(count);
}
}
}
答案 0 :(得分:1)
查看debugging using eclipse上的教程。
设置一些断点后需要进入调试模式。断点是您希望调试器停止的代码中的位置,以便您可以查看当前存储在各种变量中的内容等。
答案 1 :(得分:1)
你永远不会说(通过初始化)ar[i][j]
将会有多少cols(因此访问那些未初始化的内存块肯定会NullPointerException
为所有i
行执行此操作
ar[i] = new int[colSize]
同时检查this link
答案 2 :(得分:0)
检查Scanner的javadoc并使用hasNext()
方法确保它具有您期望的输入
答案 3 :(得分:0)
只需在您想要的位置放置一个断点,然后使用Debug运行它。无论程序步骤是否包含Scanner都无关紧要。即使您遇到扫描仪状态,您只需在concole输入上键入一行,然后输入。计划将继续。