Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码在IntelliJ IDEA中工作,但在不支持';我们没有提供输入的交互式控制台_Java_Compiler Errors_Nullpointerexception_Online Compilation - Fatal编程技术网

Java 代码在IntelliJ IDEA中工作,但在不支持';我们没有提供输入的交互式控制台

Java 代码在IntelliJ IDEA中工作,但在不支持';我们没有提供输入的交互式控制台,java,compiler-errors,nullpointerexception,online-compilation,Java,Compiler Errors,Nullpointerexception,Online Compilation,因此,我一直在尝试编写一个代码来查找n字符串中的常见字符。 该代码在IntelliJ IDEA和onlinegdb(具有交互式控制台)上运行良好,但在其他编译器上不起作用,并导致以下错误: >Exception in thread "main" java.lang.NullPointerException at Main.commonCharacters(Main.java:18) at Main.main(GFG.java:47) 如果不是作业,那就

因此,我一直在尝试编写一个代码来查找n字符串中的常见字符。 该代码在IntelliJ IDEA和onlinegdb(具有交互式控制台)上运行良好,但在其他编译器上不起作用,并导致以下错误:

>Exception in thread "main" java.lang.NullPointerException
    at Main.commonCharacters(Main.java:18)
    at Main.main(GFG.java:47)
如果不是作业,那就好了,但是我们必须提交代码的网站没有交互式控制台,它给我运行时错误

非常感谢您的帮助

import java.io.*;
import java.util.*;
import java.lang.*;
public class GFG {
  static int MAX_CHART = 26;
  public static void commonCharacters(String str[], int n)
  {
    Boolean[] prim = new Boolean[MAX_CHART];
    Arrays.fill(prim, new Boolean(true));
    for (int i = 0; i < n; i++) {

        Boolean[] sec = new Boolean[MAX_CHART];
        Arrays.fill(sec, Boolean.FALSE);

        for (int j = 0; j < str[i].length(); j++)
        {

            if (prim[str[i].charAt(j) - 'A'])// the compiler says the **problem** is here
               sec[str[i].charAt(j) - 'A'] = true;
        }

        System.arraycopy(sec, 0, prim, 0, MAX_CHART);
    }

    for (int i = 0; i < 26; i++)
        if (prim[i]){
            System.out.print(Character.toChars(i + 65));
        }
}

 public static void main(String[] args)
        throws IOException
{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    Scanner input = new Scanner(System.in);
    int n = input.nextInt();// number of strings
    String[] str = new String[n];

    for (int i=0;i < n;i++){
        str[i]=reader.readLine();//getting strings as input
    }
    n = str.length;
    commonCharacters(str, n);
     }
 }

import java.io.*;
导入java.util.*;
导入java.lang.*;
公共类GFG{
静态整数最大值图表=26;
公共静态void commonCharacters(字符串str[],int n)
{
Boolean[]prim=新的Boolean[MAX_图表];
fill(prim,new Boolean(true));
对于(int i=0;i
为什么要混合使用扫描仪和BufferedReader从控制台读取数据?您是否检查过在启动程序之前不应该向这些编译器提供输入?问题是,当我想使用“for”循环和扫描仪获取n个输入时,它不允许我获取最后一个输入。例如,如果我输入3,然后写入ABC、BDS,程序将完成,并且不允许我提供最后一个输入,正是因为这个奇怪的问题,我不得不使用BufferedReader,因为我在开始之前提供了输入,因为如果你不这样做,它会给你一个新的错误。如果你事先提供了输入,那么一切都应该是好的。关于scanner,这个问题其实并不奇怪,关于堆栈溢出还有很多问题,谢谢,实际上我通过删除BufferedReader部分并使用“Input.next()”解决了这个问题。