我已经写了这段代码,但是得到了NullPointerException import java.io.*; 导入java.util.Scanner; 导入java.math.*; 类排序{ 公共静态void main(字符串参数[]){ 类轧棉机{ int N,N,s; int-ggn[]; } gint gginta=新gint(); gint ggintb=新gint(); gint ggintc=新gint(); int i=0; int j=0; 字符c[]; 字符串ss; 字符串sggn; 字符串sggnrev=“”; System.out.println(“输入数字的最大位数”); 扫描仪扫描=新扫描仪(System.in); gginta.N=scan.nextInt(); System.out.println(“输入数字的精确数字”); gginta.n=scan.nextInt(); System.out.println(“输入数字符号”); System.out.println(“输入编号”); sggn=scan.next(); 字符温度[]; int l=sggn.length(); 对于(j=l-1;j>=0;j--){ sggnrev=sggnrev+sggn.charAt(j); } int x=整数.parseInt(sggn); 系统输出打印LN(sggnrev); System.out.println(sggn.length()); int-h; System.out.println(sggn.length()); 对于(int f=0;f

我已经写了这段代码,但是得到了NullPointerException import java.io.*; 导入java.util.Scanner; 导入java.math.*; 类排序{ 公共静态void main(字符串参数[]){ 类轧棉机{ int N,N,s; int-ggn[]; } gint gginta=新gint(); gint ggintb=新gint(); gint ggintc=新gint(); int i=0; int j=0; 字符c[]; 字符串ss; 字符串sggn; 字符串sggnrev=“”; System.out.println(“输入数字的最大位数”); 扫描仪扫描=新扫描仪(System.in); gginta.N=scan.nextInt(); System.out.println(“输入数字的精确数字”); gginta.n=scan.nextInt(); System.out.println(“输入数字符号”); System.out.println(“输入编号”); sggn=scan.next(); 字符温度[]; int l=sggn.length(); 对于(j=l-1;j>=0;j--){ sggnrev=sggnrev+sggn.charAt(j); } int x=整数.parseInt(sggn); 系统输出打印LN(sggnrev); System.out.println(sggn.length()); int-h; System.out.println(sggn.length()); 对于(int f=0;f,java,arrays,nullpointerexception,Java,Arrays,Nullpointerexception,始终使用int x=Integer.parseInt(sggn);在try catch块中 import java.io.*; import java.util.Scanner; import java.math.*; class Sort { public static void main(String args[]) { class gint { int N, n, s; int ggn[]; } gint ggint

始终使用int x=Integer.parseInt(sggn);在try catch块中

 import java.io.*;
 import java.util.Scanner;
 import java.math.*;

 class Sort {

 public static void main(String args[]) {

    class gint {
        int N, n, s;
        int ggn[];
    }

    gint gginta=new gint();
    gint ggintb=new gint();
    gint ggintc=new gint();

    int i=0;
    int j=0;
    char c[];
    String ss;
    String sggn;
    String sggnrev="";


    System.out.println("enter the number of maximum digits of the number");
    Scanner scan=new Scanner(System.in);
    gginta.N=scan.nextInt();
    System.out.println("enter the number exact digits of the number ");
    gginta.n=scan.nextInt();
    System.out.println("enter the sign of the number");

    System.out.println("enter the number");
    sggn=scan.next();

    char temp[];
    int l=sggn.length();

    for(j=l-1; j >= 0; j--) {
        sggnrev= sggnrev+sggn.charAt(j);
    }
    int x= Integer.parseInt(sggn);
    System.out.println(sggnrev);
    System.out.println(sggn.length());
    int h;
    System.out.println(sggn.length());

    for (int f=0;f<=sggn.length()-1;f++) {
        System.out.println(f);
        double y=(int) (x/Math.pow(10, f));
        double z=(int) (x/Math.pow(10, f+1));
        double w= y-(z*10);
        System.out.println("power"+i+"= "+(int) y +"-"+(int)z*10+"="+w);
        h= (int)  w;

        gginta.ggn[f]=h;

        System.out.print(gginta.ggn[l-1]);
        l--;
    }
    for (i=0;i<=sggn.length()-1;i++) {          
        if (sggn.length()!=gginta.n) {
            System.out.println("number not in range....enter the number again ... ");
            do {
                System.out.println("number not in range....enter the number again ... ");           
                System.out.println("enter the number");
                sggn=scan.next();       
            } while (sggn.length()!=gginta.n);
        }
    }
}

只需在gint类中初始化ggn数组:

int x =0;

try {
x= Integer.parseInt(sggn);
}catch(NumberFormatException ex) {
 //handle exception:
 x =0;
}
否则,程序将取消对具有空值的字段的引用

int ggn[] = new int[5];

你的问题是什么?你只是在这里转储代码。添加异常的堆栈跟踪空指针异常将告诉你代码的哪一行失败,以及你是如何到达的,如果你查看堆栈跟踪的话。找到那一行,找出那一行上使用的指针,找出其中任何一个可能为空,修复代码。另外,请仔细阅读如何在SO中格式化代码。很难理解您发布的内容。
class gint{int N,N,s;int ggn[];}
真的吗…?祝你从今天起五天内理解这样的代码好运。如果你真的认为Java语言的命名约定不适合你,至少在你自己的风格内保持一致。其他一切只会导致混乱和混乱。;)
gginta.ggn[f]=h;