【问题标题】:Comparing a string to a part of string inside an arraylist将字符串与数组列表中的字符串的一部分进行比较
【发布时间】:2014-04-28 20:29:16
【问题描述】:

标题可能有点混乱或误导,但我正在尝试比较单个字符串:

String mystring = "abc";

然后尝试将它与数组列表中包含的每个字符串进行比较

ArrayList<String> array = new ArrayList<String>();
array.add("The first letters of the alphabet are abc");
array.add("abc");
array.add("Alphabet");
array.add("Nothing");

但是(我不确定)似乎 contains 只有当两个字符串都匹配时才为真,而不是当单词或短语在字符串内时。

如何将所需的字符串与 ArrayList 字符串中的“短语”进行比较?

【问题讨论】:

  • 只要区分大小写,就可以遍历数组并使用.contains(mystring);
  • @AntonH 考虑将其发布为答案。
  • @LuiggiMendoza 我不想这样做,因为他没有指定是否需要不区分大小写,在这种情况下我的答案将不正确。
  • @AntonH 您可以在答案中添加另一部分,说明如何使用第三方库(如来自 Apache Commons Lang 的 StringUtils#containsIgnoreCase)来解决此问题。
  • @LuiggiMendoza 我一直忘记 Apache Commons。谢谢提醒。

标签: java string arraylist comparison


【解决方案1】:

要检查您要求的内容,您必须遍历数组中包含的值,并检查它们是否包含您要检查的字符串的值。

for (String fromArray : array) {
    if (fromArray.contains(mystring)) {
        // put your code here
    }
}

此方法区分大小写。为了克服这个问题,您可以将字符串更改为小写(使用toLowerCase() 方法),或者使用专门设计的库。 Apache Commons 库就是这样一个库。

http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#containsIgnoreCase%28java.lang.CharSequence,%20java.lang.CharSequence%29

如果你想检查数组元素是否,而不是包含,而是匹配你想检查它的字符串,你可以使用matches()方法。

文档链接:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Apache commons StringUtils

【讨论】:

    【解决方案2】:

    试试这个

    // check if string is exist in array
    if(array.Contains("YourString"))
    {
    // if contain then u can use this or do operations
    Response.Write("YourString is available in array");
    }
    

    这对你有帮助

    【讨论】:

      【解决方案3】:

      很简单。

      您在 ArrayList 上使用迭代器。

      for(String s: array):
        if(s.toLowerCase().contains(myString.toLowerCase())) { //find if such a substring exits within each string
            //do something
          }
      }
      

      但是,如果您不想检查区分大小写,则可以从行中删除 toLowerCase()。

      我希望您了解 toLowerCase() 的作用,并将其放入代码中不会对您产生影响。

      【讨论】:

        【解决方案4】:

        您需要遍历Array List的所有元素,然后需要使用contains()方法检查

        for (String str : array){
                    if(str.contains(mystring)){
                        System.out.println(str + " Conatins" + mystring);
                    }
                }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-18
          • 1970-01-01
          • 2015-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多