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()
方法?是否检查了此项:?这可能会有帮助。我想这已经解决了它,但它仍然告诉我还有一个例外。