【问题标题】:Remove a String Item from a List of Strings从字符串列表中删除字符串项
【发布时间】:2015-04-02 07:12:09
【问题描述】:

如何从包含字符串的列表中删除特定字符串......

如:

ArrayList<String> myStrings = new ArrayList<>();
myStrings.add("Alpha");
myStrings.add("Beta");
myStrings.add("Gama");
.                           //The order can be random 
.
.
.

现在,我只有 myStrings 列表,我不知道哪个字符串在哪个索引处。但我知道,我想在删除“Alpha”之后显示所有字符串。

总结一下,在删除我知道数组包含但不知道其索引/位置的字符串后,如何从字符串数组中获取字符串。

【问题讨论】:

  • 遍历它们并自己实现逻辑。

标签: java android string


【解决方案1】:

使用删除:

myStrings.remove("Alpha");

请注意,这只会从您的列表中删除第一次出现的“Alpha”。

【讨论】:

  • 它是一个布尔值,不符合我获取字符串值的要求。
  • @asdec90 它从列表中删除“Alpha”。如果找到并删除了“Alpha”,则返回“true”。删除它后,您可以遍历列表并显示剩余的字符串。我假设您知道如何遍历列表。最简单的方法——for (String s : myStrings) {...}.
【解决方案2】:
boolean remove(Object o)

ArrayList 类的上述方法将从列表中删除第一次出现的Object o。

你可以这样做:

myStrings.remove("Alpha");

如果 ArrayList 包含指定的元素,它将返回 true。

【讨论】:

    【解决方案3】:

    您是否还希望删除字符串列表中的重复项?

    如果是这样,您可以将String的list转换为String的set。然后,您可以有效地从set 中删除字符串,将其转换回map。

    // converting to set will remove duplicates
    final Set<String> uniqueStrSet = new HashSet<String>(listOfString);
    
    // remove string from set
    uniqueStrSet.remove(strToRemove);
    
    // convert set back to list
    list = new ArrayList<String>(uniqueStrSet);
    

    【讨论】:

      【解决方案4】:

      如果这不起作用

      myStrings.remove("Alpha");
      

      试试这个对我很好

      int pos = myStrings.indexOf("Alpha");//Getting string position
      myStrings.remove(pos);
      

      【讨论】:

        猜你喜欢
        • 2021-06-24
        • 2011-04-20
        • 1970-01-01
        • 2020-12-14
        • 1970-01-01
        • 2015-04-23
        • 2015-10-25
        相关资源
        最近更新 更多