【问题标题】:How to check if String contains value ".5"? [duplicate]如何检查字符串是否包含值“.5”? [复制]
【发布时间】:2016-02-03 00:44:33
【问题描述】:

List<String> list 具有值 [标准 .5"]

我在做

if (list.contains(".5\"")) { do something } - 返回 false - 不知道为什么

【问题讨论】:

  • 尝试遍历每个值,然后执行 if 语句
  • 为什么List#contains 应该对其项目进行“部分检查”?列表本身并不真正了解/关心它包含的内容。它只是检查是否有一个元素满足 equals 方法与传递的对象。
  • @Javaboy 看看下面我的解决方案。

标签: java string


【解决方案1】:

您必须检查列表中的项目而不是列表本身

for(String s : list) {
  if (s.contains(".5\"")) { do something }
}

【讨论】:

    【解决方案2】:

    List.contains() 方法进行.equals() 比较。由于字符串不是完全匹配的,您需要遍历列表并检查字符串是否包含.5"

    for(String s : list) {
      if (s.contains(".5\"")) 
      { 
        do something 
        break;
      }
    }
    

    【讨论】:

      【解决方案3】:

      这里有两种可能性。

      1. 您想检查列表中的特定元素并查看它是否包含“.5”:

        list.get(idx).contains(".5\"");
        

      或者

      1. 您要检查整个元素列表:

        for(String str : list)
            if(str.contains(".5\""));
                //do whatever..
        

      您调用的contains() 来自list

      boolean contains(Object o)

      如果此列表包含指定元素,则返回 true。

      因此,如果您的 String 元素之一的内容仅为 .5",则它只会是 true

      List<String> l = new ArrayList<String>();
      l.add(".5\"");
      System.out.println(l.contains(".5\""));   //returns true
      

      上面将返回 true 这不是您想要的,因为它会检查任何元素是否完全匹配 .5"

      【讨论】:

        猜你喜欢
        • 2011-03-29
        • 2020-09-20
        • 2018-08-25
        • 2016-11-06
        • 2016-01-25
        • 2017-09-03
        • 2012-04-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多