2016-05-30 28 views
0

この問題について混乱しています。最初のデータを入力した後にプログラムが常に終了する理由を理解できません。 Stringデータの入力方法キーを入力した後でプログラムが終了する理由

import java.util.Scanner; 
public class Caesar { 

    public static String encode(String enc, int offset) { 
     offset = offset % 26 + 26; 
     StringBuilder encoded = new StringBuilder(); 
     for (char i : enc.toCharArray()) { 
      if (Character.isLetter(i)) { 
       if (Character.isUpperCase(i)) { 
        encoded.append((char) ('A' + (i - 'A' + offset) % 26)); 
       } else { 
        encoded.append((char) ('a' + (i - 'a' + offset) % 26)); 
       } 
      } else { 
       encoded.append(i); 
      } 
     } 
     return encoded.toString(); 
    } 


    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 
     System.out.print("Enter key: "); 
     int key = in.nextInt(); 
     System.out.print("Enter line: "); 
     String str = in.nextLine(); 

     System.out.println(Cipher.encode(str, key)); 

    } 
} 
+0

@Jensで入力を取得することができますする必要があるのreadLine - > nextLine –

+0

@ScaryWombatはい、あなたは右申し訳ありません – Jens

答えて

1

あなたがKeyを入力するときにも<ENTER>キーを押しているので。このチャーは続行する前に消費するので、

Scanner in = new Scanner(System.in); 
    System.out.print("Enter key: "); 
    int key = in.nextInt(); 
    in.nextLine(); 
    System.out.print("Enter line: "); 
    String str = in.nextLine(); 

    System.out.println(Cipher.encode(str, key)); 
+0

はありがとうので、多く! – Andrew

0
Scanner in = new Scanner(System.in); 
     System.out.print("Enter key: "); 
     int key = in.nextInt(); 
     System.out.print("Enter line: "); 
     if (in.hasNext()) { 
      String str = in.nextLine(); 
     } 

てみたり、while

関連する問題