Java:确保值是可能的值之一

时间:2014-10-23 23:02:55

标签: java arrays compare

我希望java中有一些方法可以像标题所说的那样。例如:

int Num1 = 5;
int Num2 = 9;
char Char1 = 'a';
char Char2 = 'g';
char[] CharArray = {'1','2','3','4','5','6','7','8'
                    '9','a','b','c','d','e','f'}

我希望它为Num1,Num2和Char1返回true,而Char2应该返回false。

我在MATLAB中知道这很简单,你可以简单地做:

ismember([Num1 Num2 Char1 Char2], CharArray)

这将返回1,1,1,0

3 个答案:

答案 0 :(得分:2)

它必须是一个数组吗?如果没有,那怎么样:

String allowedCharacters = "123456789abcdef";

allowedCharacters.contains("a"); // true
allowedCharacters.contains("g"); // false
allowedCharacters.contains(String.valueOf(5)); // true
allowedCharacters.contains(String.valueOf(-1)); // false

答案 1 :(得分:0)

据我所知,Java没有提供与您提到的MATLAB方法相当的方法,但实现起来应该不会太难--Arrays.binarySearch方法在这里很有用。

如果您不介意在整个过程中对charArray进行排序,那么您可以执行类似

的操作
public boolean[] members(char[] needles, char[] haystack) {
  Arrays.sort(haystack);  // better to do this outside this method...
  boolean [] results = boolean[needles.length];
  for (int i = 0; i < needles.length; i ++) {
    results[i] = Arrays.binarySearch(haystack, needles[i]) >= 0;
  }
  return results;
}

(注意:此代码未经过测试,只是一个例子)

答案 2 :(得分:0)

你尝试过这样的事吗?

public static boolean useList(String[] arr, String targetValue) { 
    return Arrays.asList(arr).contains(targetValue);
 }