我如何告诉用户他们';我以前用indexOf输入过一封信?JAVA
当用户输入一封信时,它每次都会被添加到新闻字符串中。如果用户多次输入同一个字母,如何返回错误消息 例如,用户输入:我如何告诉用户他们';我以前用indexOf输入过一封信?JAVA,java,string,if-statement,char,indexof,Java,String,If Statement,Char,Indexof,当用户输入一封信时,它每次都会被添加到新闻字符串中。如果用户多次输入同一个字母,如何返回错误消息 例如,用户输入:a,b,然后是c 然后newString=“abc” 我只是不知道如何检查用户是否已经输入了一封信。 例如,如果他们再次输入,它将返回一条错误消息 以下是我目前掌握的情况: if (newString.indexOf(input) != -1 ) { System.out.println( "Invalid" ); } 我想象它会工作,因为它正在查看新闻字符串以获取输入,如
a
,b
,然后是c
然后newString=“abc”
我只是不知道如何检查用户是否已经输入了一封信。
例如,如果他们再次输入,它将返回一条错误消息
以下是我目前掌握的情况:
if (newString.indexOf(input) != -1 ) {
System.out.println( "Invalid" );
}
我想象它会工作,因为它正在查看
新闻字符串
以获取输入,如果它不在那里,它将返回-1
如果我正确理解了您的问题,我相信您可以使用字符串包含
方法来检查字母。应该是这样的:
if(newString.contains(letter))
for (int i = 0; i < newString.length(); i++) {
if (newString.charAt(i) == input) {
System.out.println("Invalid");
}
else {
System.out.println("Valid");
}
}
使用
包含
String s = "helo";
if (s.contains(input)){
// reject
}
或
试试这个
公共静态void main(字符串[]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();
}
}
每次用户输入字符时,请对照字符串中的现有字符检查该字符。因此,每次用户输入字符时,请执行以下操作:
if(newString.contains(letter))
for (int i = 0; i < newString.length(); i++) {
if (newString.charAt(i) == input) {
System.out.println("Invalid");
}
else {
System.out.println("Valid");
}
}
for(int i=0;i
试试这个
if(newString.indexOf(letter) != -1){
//Invalid
}
你能包括设置了newString
的部分吗?尝试时会发生什么?newString=newString+input;newString.indexOf(letter)!=-1
效果很好。这可能不是这里的问题。仅供参考:contains的源代码是return indexOf(s.toString())>-1;
好的我有:if(newString.contains(input))但它只是返回它,就好像它甚至没有检查字符串是否包含输入的字母一样?@user3096470请编辑您的原始问题并添加您用于该类的所有代码,因为您的问题似乎不仅仅是字符串比较。当我尝试此操作时,它对输入的每个字符都返回无效?n的初始值是多少ewString和什么是被操纵的值??String newString=“”;newString=newString+input;在这里工作正常..您输入了什么作为输入??您是在if条件之前还是之后追加输入字符串???>'newString=newString+input;'包含()
使用索引()
内部。使用一种方法而不是另一种方法应该不会有什么区别。当我使用此方法编译时,它会说“找不到符号-可变长度”?对不起,应该使用方法length()
。