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

Java .nextLine()直接跳到下一个输出,java,string,netbeans,input,system,Java,String,Netbeans,Input,System,我使用的是Java加密程序,它会提示用户从A-Z、0-9、句号、逗号、感叹号和空格映射自己的字符串序列 程序的运行方式如下: 用户输入一个不同于以下顺序的字符串: String original= "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.,!"; String example= "!,.1234567890QWERTYUIOPASDFGHJKLZXCVBNM" 用户现在将选择加密自己的字符串 Example output: Text to Encrypt

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

程序的运行方式如下:

用户输入一个不同于以下顺序的字符串:

String original= "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.,!";
String example= "!,.1234567890QWERTYUIOPASDFGHJKLZXCVBNM"
用户现在将选择加密自己的字符串

Example output: 

Text to Encrypt: ENCRYPT
Encrypted Text: 2Q.TSEU
用户还可以选择解密字符串

Text to Decrypt: 2Q.TSEU
Decrypted Text: ENCRYPT
但是,我无法接受用户首选字符串的
空间
输入进行加密

我尝试使用
.nextLine()
而不是
.next()
,但遇到了一些错误


当我使用String
textToEncrypt=sc.nextLine()时
这是我得到的输出

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

它不允许用户输入文本,而是立即跳到下一行,返回到
while
循环,请求用户选择。

在所有位置使用
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
    ...

如果你能发布一个简短但完整的程序(带有适当的缩进)来演示这个问题,这将非常有帮助