分割功能中的空指针错误

时间:2016-07-31 19:50:07

标签: java arrays string split nullpointerexception

我试图使用split函数将String拆分为String数组,但收到错误:

Exception in thread "main" java.lang.NullPointerException
at wdtbam.main(Main.java:16)

我在Codechef解决了这个问题。 我的目标是在遇到空格的地方将String拆分为数组的索引,然后将其解析为Long类型。

这是我的代码

import java.util.*;
import java.io.*;
class wdtbam
{
    public static void main(String args[]) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Scanner sc = new Scanner(br);
        int t =sc.nextInt();
        for(int i=1;i<=t;i++)
        {
            int n =sc.nextInt();
            String a =br.readLine();
            String b =br.readLine();
            String c = br.readLine();
            String cx[]= c.split(" ");  //the problem
            long d []=new long[1234];
            int y=0;
            for(int j=0;j<=n;j++)
            {
                d[j]=Long.parseLong(cx[j]);
            }
            for(int k=0;k<n;k++)
            {
                if(a.charAt(k)==b.charAt(k))
                {
                    y++;
                }
            }
            System.out.println(d[y]);
        }
    }
}

我一直在遇到这个问题,如果有人可以帮助我,那将是非常适合的。

编辑:

我从代码中删除了BufferedReader,而只使用了Scanner。 我还尝试直接将数字输入到数组中,而不是输入字符串,然后将其解析为长数组。

这是我的新代码:

import java.util.*;
import java.io.*;
class wdtbam
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
        int t =sc.nextInt();
        for(int i=1;i<=t;i++)
        {
            int n =sc.nextInt();
            String a =sc.nextLine();
            String b =sc.nextLine();
            long d []=new long[1234];
            int y=0;
            for(int j=0;j<=n;j++)
            {
                d[j]=sc.nextInt();
            }
            for(int k=0;k<n;k++)
            {
                if(a.charAt(k)==b.charAt(k))
                {
                    y++;
                }
            }
            System.out.println(d[y]);
        }
    }
}

我仍然收到错误。 IDK为什么。 请帮助我现在对JAVA感到非常沮丧。

错误:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at wdtbam.main(Main.java:18)

顺便说一句,这是我试图解决的问题:Codechef

0 个答案:

没有答案