我想编写一个程序,它检查用户输入的字符串是否存在给定的char限制(例如10个字符)。如果输入的字符串超过10个字符,则系统应该一次又一次地重新提示用户输入有效字符串(10个字符的单词),直到用户输入有效的字符串。
我已经有了一些代码,但它还没有用,因为我不知道如何将进程向上移动(到第1行)以重新提示用户或者还有其他简单方法?
System.out.print("Input: ");
String inputChars = Input.readString();
while (inputChars.length() > 10){
System.out.print("Input: ");
String inputChars = Input.readString(); // here is mistake now
}
System.out.print("Output: ");
System.out.print("The enter has 10 chars");
我只想检查输入的单词,如果超过10个字符,则只需跳过它并再次提示用户输入一个不超过10个字符的单词。我还不擅长java,所以如果这个问题很愚蠢,那就解释一下如何解决它。提前致谢
答案 0 :(得分:3)
看看你的循环:
while (inputChars.length() > 10){
System.out.print("Input: ");
String inputChars = Input.readString();
}
循环体的第二行重新声明 inputChars
变量。你不能这样做,因为它已经在范围内了。您只想替换以前的值:
inputChars = Input.readString();
您还应考虑重构代码以避免重复:
String inputChars;
do {
System.out.print("Input: ");
inputChars = input.readString();
} while (inputChars.length() > 10);
请注意我是如何将Input
变量重命名为input
以遵循常规Java命名约定的。我实际上可能会更改input
和inputChars
更具描述性 - 特别是,目前没有任何输入数据意味着意味着的指示。 / p>
答案 1 :(得分:1)
只需删除开头的String
:
while (inputChars.length() > 10){
System.out.print("Input: ");
inputChars = Input.readString(); // here is mistake now
}
通过开始String
,您尝试再次重新定义相同的名称变量。
答案 2 :(得分:0)
更改为:
String inputChars = ""
do {
System.out.print("Input: ");
inputChars = Input.readString();
} while (inputChars.length() > 10)
System.out.print("Output: ");
System.out.print("The enter has 10 chars");
之前,inputChars
已在循环之前声明,因此您无需重新声明变量。
do-while循环是一个更好的构造,因为它使你的意图更清晰,使你的代码更干净。