阵列操作?

时间:2012-10-01 08:15:29

标签: java

我想知道是否有类似于(input ==(letters [i] - '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 个答案:

答案 0 :(得分:4)

尝试以下方法:

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

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

答案 1 :(得分: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");

答案 2 :(得分: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");
}

答案 3 :(得分:-1)

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

这将返回true或false。您可以在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应该有一个大写字母)