.nextLine() 直接跳转到下一个输出
Posted
技术标签:
【中文标题】.nextLine() 直接跳转到下一个输出【英文标题】:.nextLine() jumps straight to next output 【发布时间】:2015-02-06 11:36:05 【问题描述】:我正在使用一个 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
但是,我无法接受 Space
输入以供用户首选的字符串加密。
我尝试使用.nextLine()
而不是.next()
,但遇到了一些错误。
当我使用字符串textToEncrypt= sc.nextLine();
这是我得到的输出。
Text to Encrypt: Encrypted Text:
--------------------------------------------------------------------
(1-Encrypt) (2-Decrypt) (3-Quit):
它不让用户输入文本,而是立即跳到下一行并返回到while
循环,该循环要求用户选择。
【问题讨论】:
如果您可以发布一个简短但 完整 的程序(带有适当的缩进)来演示问题,这将非常有帮助。 Reading Strings next() and nextLine() Java 的可能重复项 【参考方案1】:在所有地方使用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
...
【讨论】:
以上是关于.nextLine() 直接跳转到下一个输出的主要内容,如果未能解决你的问题,请参考以下文章