Java 它告诉我,我有一个意外的例外,我';我失踪了吗?

Java 它告诉我,我有一个意外的例外,我';我失踪了吗?,java,exception,Java,Exception,程序应该接收一个数字,表示您将输入多少短语,然后检查字母表中的每个字母是否都在所述短语中,如果不是,则按字母顺序打印缺少的字母 import java.util.Arrays; import java.util.Scanner; public class Activity { public static void main(String[] args) { Activity test = new Activity(); test.pangram();

程序应该接收一个数字,表示您将输入多少短语,然后检查字母表中的每个字母是否都在所述短语中,如果不是,则按字母顺序打印缺少的字母

import java.util.Arrays;
import java.util.Scanner;

public class Activity {

    public static void main(String[] args) {
        Activity test = new Activity();
        test.pangram();
    }


    public static void pangram() {
        Scanner sc = new Scanner(System.in);
        int numberPhrases = sc.nextInt();

        String[] inputs = new String[numberPhrases];

        for (int p = 0; p < numberPhrases; p++) {
            Scanner s = new Scanner(System.in);

            inputs[p] = s.nextLine().toLowerCase();
        }

        for (int i = 0; i < numberPhrases; i++) {
            String st = inputs[i];

            String pangram = "";
            String missing = "";

            if (!st.contains("a"))
                missing = missing + "a";
            if (!st.contains("b"))
                missing = missing + "b";
            if (!st.contains("c"))
                missing = missing + "c";
            if (!st.contains("d"))
                missing = missing + "d";
            if (!st.contains("e"))
                missing = missing + "e";
            if (!st.contains("f"))
                missing = missing + "f";
            if (!st.contains("g"))
                missing = missing + "g";
            if (!st.contains("h"))
                missing = missing + "h";
            if (!st.contains("i"))
                missing = missing + "i";
            if (!st.contains("j"))
                missing = missing + "j";
            if (!st.contains("k"))
                missing = missing + "k";
            if (!st.contains("l"))
                missing = missing + "l";
            if (!st.contains("m"))
                missing = missing + "m";
            if (!st.contains("n"))
                missing = missing + "n";
            if (!st.contains("o"))
                missing = missing + "o";
            if (!st.contains("p"))
                missing = missing + "p";
            if (!st.contains("q"))
                missing = missing + "q";
            if (!st.contains("r"))
                missing = missing + "r";
            if (!st.contains("s"))
                missing = missing + "s";
            if (!st.contains("t"))
                missing = missing + "t";
            if (!st.contains("u"))
                missing = missing + "u";
            if (!st.contains("v"))
                missing = missing + "v";
            if (!st.contains("w"))
                missing = missing + "w";
            if (!st.contains("x"))
                missing = missing + "x";
            if (!st.contains("y"))
                missing = missing + "y";
            if (!st.contains("z"))
                missing = missing + "z";
            if (missing.equals(""))
                System.out.println("pangram");
            else {
                missing.toLowerCase();
                char[] chars = missing.toCharArray();
                Arrays.sort(chars);
                String sorted = new String(chars);
                missing = sorted;
                System.out.println("missing " + missing);
            }
        }
    }
}
导入java.util.array;
导入java.util.Scanner;
公共课堂活动{
公共静态void main(字符串[]args){
活动测试=新活动();
test.pangram();
}
公共静态无效内存(){
扫描仪sc=新的扫描仪(System.in);
int numberphases=sc.nextInt();
字符串[]输入=新字符串[numberPhrases];
对于(int p=0;p
扫描器的
nextInt
nextLine
方法都会抛出需要捕获的异常


如果您使用的是像样的IDE,它应该会告诉您。

如果您输入的是字符串而不是数字,则异常将被
sc.nextInt()
处理。按如下方式包装以避免该异常:

    Scanner sc = new Scanner(System.in);
    int numberPhrases = 0;
    try
    {
      numberPhrases = sc.nextInt();  
    } catch (Exception e)
    {
        //if (no number enterred) {alternative behaviour here}
    }

此代码工作正常,但当您输入与数字不同的字符时,会导致
java.util.InputMismatchException
。如果这是您要处理的异常,只需使用
try/catch
(接受整数的扫描器)覆盖代码即可

更改此项:

Scanner sc = new Scanner(System.in);
int numberPhrases = sc.nextInt();
例如:

Scanner sc = new Scanner(System.in);
try{    
  int numberPhrases = sc.nextInt();
} catch (InputMismatchException e) {
  system.out.println("Wrong format");
}

请显示完整的错误。未捕获异常:您正在调用一个方法,根据其文档,该方法会引发特定的异常。但是你没有捕捉到那个异常或者重新抛出它。我不明白最后一个“else”括号中所有代码的意思。missing已按小写排序。为什么要使用object
test调用
static Pangram()
方法?是否检查了此项:?这可能会有帮助。我想这已经解决了它,但它仍然告诉我还有一个例外。