.nextLine()直接跳转到下一个输出

时间:2015-02-06 11:36:06

标签: java string netbeans input system

我正在使用Java加密程序,它会提示用户从A-Z,0-9,句号,逗号,感叹号和空格映射他/她自己的字符串序列。

程序运行如下:

用户输入不同序列的字符串:

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

用户现在将选择加密自己的String。

Example output: 

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

用户也可以选择解密字符串。

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

但是,我无法接受Space输入用户的首选字符串进行加密。

我尝试使用.nextLine()代替.next(),但我遇到了一些错误。


当我使用字符串textToEncrypt= sc.nextLine();时 这是我得到的输出。

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

不是允许用户输入文本,而是立即跳转到下一行并返回while循环,询问用户的选择。

1 个答案:

答案 0 :(得分: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
    ...