java - 尝试从 ArrayList 中的字符串中删除特定单词

标签 java arraylist

我正在制作一个采用StringArrayList,并且该类中的一个方法采用String,添加“紧急:”到它的前面,并将其放在列表的开头。我现在正在编写一个方法,该方法应该采用 int、一个 String 的位置,并将该字符串“降级”到列表的末尾。

但是,如果字符串前面有“urgent:”,则该方法也应该删除“urgent:”(如果它被降级)。一切都编译并运行,但它没有删除“紧急:”,我不知道为什么。

public void addUrgetItem(String newItem) {
    String urgentItem = newItem; 
    items.add(0, "urgent: " + urgentItem); 
}

public void demote(int position) {
    int size = items.size();  
    String itemAtSpot = items.get(position); 
    items.remove(itemAtSpot); 
    items.add((size-1), itemAtSpot); 

    if (itemAtSpot.startsWith("urgent:")) {
        items.remove("urgent:"); 
    }
}

最佳答案

当你这样说时:

items.remove("urgent:");

它试图从列表本身而不是列表中的任何特定项目中删除文字String“urgent”。相反,您需要先从 itemAtSpot 中删除该文本,然后再将其添加回 List 中。看起来像这样:

public void demote(int position) {
    int size = items.size();  
    String itemAtSpot = items.get(position); 
    items.remove(itemAtSpot); 
    if (itemAtSpot.startsWith("urgent: ")) {
        itemAtSpot = itemAtSpot.substring("urgent: ".length());
    }
    items.add(itemAtSpot); 
}

因此,在删除 String 后,您将获取“urgent:”之后所有内容的子字符串,并将其添加回末尾的 List 中。

关于java - 尝试从 ArrayList 中的字符串中删除特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273664/

相关文章:

java - Spring Boot 测试数据库初始化运行两次

java - 有没有办法在 fragment 可见后运行方法?

java - Maven 在 "mvn site"期间抛出错误,但在 "mvn compile"/"mvn test"下工作正常

java - 在 Java 中传递 2D ArrayList

java - 在 Java 中,如何根据另一个列表对一个列表进行排序?

java - 读取build.xml中的多个属性文件

java - 取消我没有写的动态加载的 Callable

java - 运行时 android studio 应用程序中的红色 X 标记

Java - 使用 HashMap 和 List<> 作为键

android - ArrayList 的持久化存储