当用户输入一个字母时,它每次都会被添加到newString中。如果用户多次输入相同的字母,如何返回错误消息?
例如,用户输入:a
,b
,然后c
然后newString = "abc"
我无法弄清楚如何检查用户是否已经输入了一封信。 例如,如果他们再次输入,则应返回错误消息。
这是我到目前为止所拥有的:
if (newString.indexOf(input) != -1 ) {
System.out.println( "Invalid" );
}
我想它会起作用,因为它正在通过newString
查看输入,如果它没有,它将返回-1
。
答案 0 :(得分:1)
如果我正确理解您的问题,我相信您可以使用字符串contains
方法来检查字母。它会是这样的:
if(newString.contains(letter))
答案 1 :(得分:1)
使用contains
String s = "helo";
if (s.contains(input)){
// reject
}
或
if (!s.contains(input)){ // if string does not contain input
s += input; // concatenate to string
}
答案 2 :(得分:0)
试试这个
public static void main(String [] args)抛出IOException {
String newString = "";
System.out.print("Enter letter: ");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine().toUpperCase();
while(true){
if (newString.contains(input))
{ System.out.println( "Invalid" );}
else
{
newString = newString+ input;
}
input = br.readLine().toUpperCase();
}
}
答案 3 :(得分:0)
每次用户输入字符时,请检查String
中现有字符的字符。因此,每次用户输入角色时,请执行以下操作:
for (int i = 0; i < newString.length(); i++) {
if (newString.charAt(i) == input) {
System.out.println("Invalid");
}
else {
System.out.println("Valid");
}
}
答案 4 :(得分:0)
试试这个
if(newString.indexOf(letter) != -1){
//Invalid
}