使用控制台输入进行调试

时间:2013-09-15 18:21:56

标签: java eclipse

如何使用使用扫描程序获取输入的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);

        }
    }
}

4 个答案:

答案 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输入上键入一行,然后输入。计划将继续。