我希望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
答案 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);
}