java - 在具有边缘空间的字符串列表中查找字符串

标签 java string

<分区>

我怎样才能了解情况?

// The Strings of the list below can have the edge spaces.
List<String> list = Arrays.asList("Mango", " Apple", " Banana ", " Blackberry");
    String banana = "Banana"; // with no edge spaces
    if (list.contains(banana)) {
        System.out.println("Yes it is listed"); // How can I print this line ?
}

最佳答案

有两种方法:

  1. 在创建列表之前/期间删除空格(一次!)。这可能是最好的方法,除非您有充分的理由保留空格。
  2. 使用 trim() 使用显式循环进行搜索在测试前删除空格;例如

      for (String s : list) {
          if (s.trim().equals("banana")) {
               System.out.println("Yes it is listed");
               break;
          }
      }
    

    这种方法的问题是每次搜索列表时都要重复修剪工作。


I would expect no loop. Is there anything to ignore the edge spaces.

好吧,您可以使用 Java 8 流来实现它(再次阅读@javaguy 的回答!),但是在幕后有一个循环,而且它很可能比使用显式的更慢循环。

关于java - 在具有边缘空间的字符串列表中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40326460/

相关文章:

php 字符串连接,性能

php - 正则表达式来检查字符串是否有中文字符

java - 如何设计可以提供接口(interface)作为JAX-WS Web服务,通​​过JMS或Java EE框架内的本地方法调用的服务?

Java Streams 返回一个特定的类

java - Netty 可以通过 ByteBuffers 消除 GC 吗?

java - MyClass.class 和 Class.forName ("className"之间的区别)

javascript - 是否可以在文本区域中索引输入的文本?

Java ArrayList 基于动态对象字段进行排序?

java - JSONObject 无法转换为 java.lang.String

javascript - 接受部分用户输入字符串