2015-02-06 65 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