Java赋值的空指针异常

Java赋值的空指针异常,java,nullpointerexception,Java,Nullpointerexception,我有一个任务,我必须从一个文件(或标准输入,如果没有提供文件)中获取URL,然后计算方案等于某些内容的次数以及域等于某些内容的次数 这是我代码的一部分,它接受输入,将其拆分为scheme和domain,然后在找到某些单词时增加变量。然而,我不断得到NullPointerException,我不知道为什么。现在,这段代码在第16行出现了一个错误。任何帮助都将不胜感激 File file = new File("input"); Scanner scan = new Scanner("input")

我有一个任务,我必须从一个文件(或标准输入,如果没有提供文件)中获取URL,然后计算方案等于某些内容的次数以及域等于某些内容的次数

这是我代码的一部分,它接受输入,将其拆分为scheme和domain,然后在找到某些单词时增加变量。然而,我不断得到
NullPointerException
,我不知道为什么。现在,这段代码在第16行出现了一个错误。任何帮助都将不胜感激

File file = new File("input");
Scanner scan = new Scanner("input");
Scanner scan2 = new Scanner(System.in);
while (!scan.next().equals("end") || !scan2.next().equals("end")) {
    if (scan.hasNext() == true) {
        url = scan.nextLine();
    }
    String[] parts = url.split(":");
    scheme = parts[0];
    schemeSP = parts[1];
    if (scheme == "http") {
        httpCt++;
    }
    if (scheme == "https") {
        httpsCt++;
    }
    if (scheme == "ftp") {
        ftpCt++;
    } else {
        otherSchemeCt++;
    }
    for (int j = 0; j < schemeSP.length(); j++) {
        if (schemeSP.charAt(j) == '.') {
            domain = schemeSP.substring(j);
        }
    }
    if (domain == "edu") {
        eduCt++;
    }
    if (domain == "org") {
        orgCt++;
    }
    if (domain == "com") {
        comCt++;
    } else {
        otherDomainCt++;
    }
    fileLinesCt++;
    totalLinesCt++;
}
File File=新文件(“输入”);
扫描仪扫描=新扫描仪(“输入”);
扫描仪scan2=新扫描仪(System.in);
而(!scan.next().equals(“end”)| |!scan2.next().equals(“end”)){
if(scan.hasNext()==true){
url=scan.nextLine();
}
String[]parts=url.split(“:”);
方案=零件[0];
schemeSP=零件[1];
如果(方案==“http”){
httpCt++;
}
如果(方案==“https”){
httpsCt++;
}
如果(方案==“ftp”){
ftpCt++;
}否则{
otherSchemeCt++;
}
对于(int j=0;jscheme=“http”首先发生。Google“java字符串interning”和java==运算符这当然是正确的,我完全同意正确的解决方案是使用equals方法。但这并不能证明scheme==“http”总是错误的。在这种情况下,java字符串池如何?@ukaszRzeszotarski不可能是==。字符串不是那样工作的。scanner的实现不会插入返回的字符串。我已经按照你的建议更新了扫描线,但是我有几个问题要问。我不知道具体文件的名称,所以它需要能够接受任何文件。然后,如果没有提供任何文件,则需要通过System.in接收行。这条线可以吗?