2017-04-16 86 views
-1

我怎样才能显示这个程序的输出?当我运行它时,它会抛出一个InputMismatchException’在线程异常”

这里是整个代码:

import java.util.HashMap; 
import java.util.Scanner; 

public class Try { 

    static HashMap< String, String> codeMap = new HashMap< String, String>(); 
    static HashMap< String, String> ref = new HashMap< String, String>(); 

    static void initMap() { 
     codeMap.put("A", ".-"); 
     codeMap.put("B", "-..."); 
     codeMap.put("C", "-.-."); 
     codeMap.put("D", "-.."); 
     codeMap.put("E", "."); 
     codeMap.put("F", "..-."); 
     codeMap.put("G", "--."); 
     codeMap.put("H", "...."); 
     codeMap.put("I", ".."); 
     codeMap.put("J", ".---"); 
     codeMap.put("K", "-.-"); 
     codeMap.put("L", ".-.."); 
     codeMap.put("M", "--"); 
     codeMap.put("N", "-."); 
     codeMap.put("O", "---"); 
     codeMap.put("P", ".--."); 
     codeMap.put("Q", "--.-"); 
     codeMap.put("R", ".-."); 
     codeMap.put("S", "..."); 
     codeMap.put("T", "-"); 
     codeMap.put("U", "..-"); 
     codeMap.put("V", "...-"); 
     codeMap.put("W", ".--"); 
     codeMap.put("X", "-..-"); 
     codeMap.put("Y", "-.--"); 
     codeMap.put("Z", "--.."); 
     codeMap.put("_", "..--"); 
     codeMap.put(".", "---."); 
     codeMap.put(",", ".-.-"); 
     codeMap.put("?", "----"); 

     ref.put(".-", "A"); 
     ref.put("-...", "B"); 
     ref.put("-.-.", "C"); 
     ref.put("-..", "D"); 
     ref.put(".", "E"); 
     ref.put("..-.", "F"); 
     ref.put("--.", "G"); 
     ref.put("....", "H"); 
     ref.put("..", "I"); 
     ref.put(".---", "J"); 
     ref.put("-.-", "K"); 
     ref.put(".-..", "L"); 
     ref.put("--", "M"); 
     ref.put("-.", "N"); 
     ref.put("---", "O"); 
     ref.put(".--.", "P"); 
     ref.put("--.-", "Q"); 
     ref.put(".-.", "R"); 
     ref.put("...", "S"); 
     ref.put("-", "T"); 
     ref.put("..-", "U"); 
     ref.put("...-", "V"); 
     ref.put(".--", "W"); 
     ref.put("-..-", "X"); 
     ref.put("-.--", "Y"); 
     ref.put("--..", "Z"); 
     ref.put("..--", "_"); 
     ref.put("---.", "."); 
     ref.put(".-.-", ","); 
     ref.put("----", "?"); 
    } 

    public static void main(String[] args) { 
     { 
      Scanner in = new Scanner(System.in); 
      System.out.println("Enter Code: "); 
      initMap(); 
      int N = in.nextInt(); 
      for (int i = 1; i <= N; i++) { 
       StringBuffer encry = new StringBuffer(in.next()); 
       StringBuffer inter = new StringBuffer(); 
       StringBuffer num = new StringBuffer(); 

       StringBuffer org = new StringBuffer(); 
       String tmp = new String(encry); 
       for(int j = 0; j < tmp.length(); j++) { 
        inter.append(codeMap.get(tmp.substring(j, j+1))); 
        num.append(codeMap.get(tmp.substring(j, j+1)).length());  
       } 
       num = num.reverse(); 
       int index = 0; 
       for(int j = 0; j < num.length(); j++) { 
        int t1 = Integer.valueOf(num.substring(j, j+1)); 
        StringBuffer con = new StringBuffer(); 
        for(int k = index; k < index+t1;k++) { 
         con.append(inter.substring(k, k+1)); 
        } 
        org.append(ref.get(new String(con))); 
        index += t1; 
       } 
       System.out.printf("%d: %s\n",i,org); 
      } 
     } 
    } 
} 
+1

,直到你得到你要运行的程序不能显示输出。这个异常会引发什么? –

+0

程序运行,但这种示出了误差线93“INT N = in.nextInt();”的时候我进入它的输入端,然后它会显示在java的螺纹 异常“主” java.util.InputMismatchException” .util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) 在Try.main(Try.java:93) –

+1

@DaNiel到底是什么,你正在进入输入?如果它不是一个'Integer',那么它会抛出一个异常... – kunruh

回答

0

括在try块整个代码,并打印在catch块堆栈跟踪,看到哪一行有错误,并采取相应的行动。

+0

我该怎么做先生? –

+0

现在没有必要,因为你已经说过93行中的错误。我认为你没有输入整数,因此得到这个错误。 –

+0

好的,先生,谢谢你的帮助:) –