0

我想知道我是否可以使用类似于 (input==(letters[i]-'c')) 的东西。我知道我输入的内容没有意义,但我正在尝试创建类似的内容。如果用户的输入是数组中除 c 之外的任何内容,则显示第一条消息,否则如果是 c,则显示第二条消息。我只是想以某种方式暂时从数组中排除 c 并让程序检查所有其他元素......

char []letters={'a','b','c','d'};
//input is user input

for(int i=0;i<letters.length<;i++)
   if(input==(letters[i]-'c'))
   {
     system.out.print("input might be a,b,d but not c");
   }
   else if(input=='c')
   {
     system.out.print("input is c");
     break;
   }
4

4 回答 4

4

尝试以下操作:

Arrays.sort(letters);
if (Arrays.binarySearch(letters, 'c') >= 0) {
    // contains 'c'
} else {
    // doesn't contain 'c'
}

请注意,调用binarySearch需要首先对数组进行排序,因此sort.

于 2012-10-01T08:22:39.020 回答
0

通常你会做的是使用字符串作为文本。

//input is user input
String letters = "abcd";

if (letters.contains("c")) 
    System.out.print("input contains c");
else
    System.out.print("input doesn't contain c");
于 2012-10-01T08:23:40.427 回答
0
String str=Arrays.toString(letters).replaceAll("\\s*\\[*,*\\]*", "");
if(input=='c') {
    system.out.println("input is c");
}
else if(str.contains(""+input)) {
    system.out.print("input might be a,b,d but not c");
}
于 2012-10-01T08:47:02.290 回答
-1

您可以将其转换为列表,然后使用 contains 方法

这将返回真或假。您可以在 if 语句中使用它。

例如

if (Arrays.asList('a', 'b', 'c').contains('c')) {
   System.out.print("input might be a,b,d but not c");
}
else {
   System.out.print("input is c");
}

(顺便说一句,您的代码示例无法编译。System应该有一个大写字母)

于 2012-10-01T08:18:08.300 回答