为了账号安全,请及时绑定邮箱和手机立即绑定

我应该在这里使用哪种算法?在字符串数组中查找字符串

我应该在这里使用哪种算法?在字符串数组中查找字符串

POPMUISE 2021-05-05 13:38:08
我有2个数组。一个Array有字符串,我在找。static String[] namesToLookFor = { "NR", "STAFFELNR", "VONDATUM"};另一个Array有字符串,我是从* .csv文件中获得的。indexString = indexReader.readLine();indexArray = indexString.split(";");我的目标是实现system.out.println() ,indexArray[]而不是的价值观namesToLookFor[]。例如:namesToLookFor = {"NR"};indexArray = {"HELLO","NR"};//Any Algorithm here...因此,在这种情况下"HELLO"应将其打印出来,因为它不在namesToLookFor[]数组中。
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您可以遍历indexArray并检查每个元素是否包含在namesToLookFor数组中:


    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);

        }

    }

将仅输出“ HELLO”。


查看完整回答
反对 回复 2021-05-19
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

如果您使用的是Java8,则可以执行以下操作


List<String> list = Arrays.asList(namesToLookFor);

Arrays.stream(indexArray)

        .filter(item -> !list.contains(item))

        .forEach(System.out::println);


查看完整回答
反对 回复 2021-05-19
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

// Put array into set for better performance

Set<String> namesToFilter = new HashSet<>(Arrays.asList("NR", "STAFFELNR"));

String[] indexArray = indexReader.readLine().split(";");


// Create list with unfiltered values and remove unwanted ones

List<String> resultList = new ArrayList<>(indexArray);

resultList.removeAll(namesToFilter);


// Do with result whatever you want

for (String s : resultList)

    System.out.println(s);


查看完整回答
反对 回复 2021-05-19
  • 3 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信