2015-02-06 58 views
0

我在Java加密程序中提示用戶從A-Z,0-9,句號,逗號,感嘆號和空格映射他/她自己的字符串序列。.nextLine()直接跳轉到下一個輸出

的程序運行是這樣的:

用戶由此進入不同序列的字符串:

String original= "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.,!"; 
String example= "!,.1234567890QWERTYUIOPASDFGHJKLZXCVBNM" 

用戶現在選擇加密自己的字符串。

Example output: 

Text to Encrypt: ENCRYPT 
Encrypted Text: 2Q.TSEU 

用戶還可以選擇解密字符串。

Text to Decrypt: 2Q.TSEU 
Decrypted Text: ENCRYPT 

但是,我無法接受Space輸入爲用戶的首選字符串進行加密。

我嘗試使用.nextLine()而不是.next()但我遇到了一些錯誤。


當我用String textToEncrypt= sc.nextLine(); 這是輸出我得到。

Text to Encrypt: Encrypted Text: 
-------------------------------------------------------------------- 
(1-Encrypt) (2-Decrypt) (3-Quit): 

而不是讓用戶輸入的文本,它跳到立即下一行並返回到while環路詢問用戶的選擇。

+0

這將真正幫助,如果你能發佈簡短而*完整*程序(用正確的縮進),這說明了問題。 – 2015-02-06 11:38:54

+0

[Reading Strings next()and nextLine()Java](http://stackoverflow.com/questions/8873351/reading-strings-next-and-nextline-java) – immibis 2015-02-06 11:39:01

回答

2

使用nextLine在所有的地方:

while (run) { 
    System.out.print("(1-Encrypt) (2-Decrypt) (3-Quit): "); 
       option = sc.nextLine().charAt(0); // here 
    if (option == '1') { 

    System.out.print("\nText to Encrypt: "); 
    String userEncrypt = sc.nextLine(); // and here 
    ... 
+0

謝謝!有效 – gymcode 2015-02-06 12:18:16