有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检查TreeSet中的键是否以字符串开头,并获取该键

我有一个TreeSet填充了Strings,我想用它来看看里面的任何键是否以集合外的字符串开头,并且能够得到那个特定的键并用它做一些事情(把它放在一个字符串中),例如我的Stringtest 1 2 3,我在集合中有一个keytest 1 2,它应该返回true并告诉我键。我之所以使用TreeSet,是因为我需要一种不区分大小写的方式来读取yaml文件中的键。在使用之前,我在集合中使用了迭代器

Iterator<String> itr = myTreeSet.iterator();
while(itr.hasNext())
if (myString.startsWith(itr.next())){ }

但我无法找到使if陈述成为事实的关键


共 (3) 个答案

  1. # 1 楼答案

    你真的很接近。。。这条线错了

    if (myString.startsWith(itr.next())){ }
    

    应该是这样的——因为键应该以myString开头

    String theKey = null;
    while(itr.hasNext()) {
      theKey = itr.next();
      if (theKey.startsWith(myString)) {
        return theKey;
      }
    }
    return null;
    
  2. # 2 楼答案

    我不确定能得到你想要的:

    Iterator<String> itr = myTreeSet.iterator();
    while(itr.hasNext()) {
         String myString = itr.next()
         if (myString.startsWith(myString)){ 
             System.out.println(myString);
         }
    }
    
  3. # 3 楼答案

    对于树集,Call subSet()比遍历树集更合适

    myTreeSet.subSet(str, str + "\uffff")