Java 我应该在这里使用哪种算法?在字符串数组中查找字符串
我有两个数组 一个Java 我应该在这里使用哪种算法?在字符串数组中查找字符串,java,algorithm,Java,Algorithm,我有两个数组 一个数组有字符串,我正在查找 static String[] namesToLookFor = { "NR", "STAFFELNR", "VONDATUM"}; 另一个数组有字符串,我是从*.csv文件中获得的 indexString = indexReader.readLine(); indexArray = indexString.split(";"); 我的目标是system.out.println()索引数组[]中的值,而不是[]的名称中的值 例如: namesToL
数组
有字符串,我正在查找
static String[] namesToLookFor = { "NR", "STAFFELNR", "VONDATUM"};
另一个数组
有字符串,我是从*.csv文件中获得的
indexString = indexReader.readLine();
indexArray = indexString.split(";");
我的目标是system.out.println()
索引数组[]中的值,而不是[]的名称中的值
例如:
namesToLookFor = {"NR"};
indexArray = {"HELLO","NR"};
//Any Algorithm here...
因此,在这种情况下,应该打印出“HELLO”
,因为它不在[]数组的名称库中。您可以迭代索引数组
并检查每个元素是否包含在名称库中
String[] namesToLookFor = {"NR"};
String[] indexArray = {"HELLO","NR"};
List<String> excludedNames = Arrays.asList(namesToLookFor);
for(String s : indexArray) {
if (!excludedNames.contains(s)) {
System.out.println(s);
}
}
String[]namestookfor={“NR”};
字符串[]indexArray={“HELLO”,“NR”};
List excludedNames=Arrays.asList(namestookfor);
用于(字符串s:索引阵列){
如果(!excludedNames.contains)){
系统输出打印项次;
}
}
将只输出“HELLO”。如果您使用的是java8,则可以执行以下操作
List<String> list = Arrays.asList(namesToLookFor);
Arrays.stream(indexArray)
.filter(item -> !list.contains(item))
.forEach(System.out::println);
List List=Arrays.asList(namestookFor);
Arrays.stream(indexArray)
.filter(项->!list.contains(项))
.forEach(System.out::println);
//将数组放入集合以获得更好的性能
Set namesToFilter=newhashset(Arrays.asList(“NR”、“STAFFELNR”);
字符串[]indexArray=indexReader.readLine().split(“;”);
//使用未筛选的值创建列表并删除不需要的值
列表结果列表=新的ArrayList(indexArray);
结果列表removeAll(名称过滤器);
//你想怎么做就怎么做
for(字符串s:resultList)
系统输出打印项次;
使用数组
可以使用包含
函数,但将其转换为数组列表
后,包含
函数将检查数组列表
是否包含特定值
for (int i =0; i<indexArray.length; i++) {
if (!Arrays.asList(namesToLookFor).contains(indexArray[i]))
System.out.println(indexArray[i]);
}
for(int i=0;我建议使用集合而不是数组,然后您可以区分集合对象数组。asList(namestookfor)
在循环内部将创建许多不需要的对象。您应该将其放在循环之前并重新使用
for (int i =0; i<indexArray.length; i++) {
if (!Arrays.asList(namesToLookFor).contains(indexArray[i]))
System.out.println(indexArray[i]);
}