java - 仅删除字符串 ArrayList 中的最后一个单词

标签 java arraylist

我正在尝试删除字符串数组列表中的最后一个单词。

public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    list.add("8.4 8.4"); list.add("6.5 8.0"); list.add("5.0 6.3 10.0");
    ArrayList<String> restlist = new ArrayList<String>();
    ArrayList<String> lastlist = new ArrayList<String>();
    for(String str : list) {
        String everything = str.trim();
        String[] words = everything.split(" ");
        String lastWord = words[words.length - 1];
        String restWords = everything.replace(lastWord, "");
        lastlist.add(lastWord);
        restlist.add(restWords);
    }
    System.out.println(restlist);
    System.out.println(lastlist);
}

如果我运行我的代码,它会打印出来:

[ , 6.5 , 5.0 6.3 ]
[8.4, 8.0, 10.0]

问题是它还删除了第一个 8.4,而我只想删除最后一个。

最佳答案

因为你想分隔其余的最后一个单词,也许使用“lastIndex()”和“substring()”方法是更好的方法:

for(String str : list) {
    String everything = str.trim();
    int lastPos = everything.lastIndexOf(' ');
    if(lastPos < 0){
       continue; //check if there is a space char
    }
    String lastWord = everything.substring(lastPos + 1);
    String restWords = everything.substring(0,lastPos)
    lastlist.add(lastWord);
    restlist.add(restWords);
}

关于java - 仅删除字符串 ArrayList 中的最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46767076/

相关文章:

java - 我的类(class)出现意外错误

java - 如何在 ant 的 build.xml 中设置 -Dfile.encoding?

java - 获取嵌套ArrayList的频率

java - NullPointerException 将子字符串从字符串添加到数组列表

java - 将对象保存在另一个类的数组列表中

java - 属性文件未在 Unix 计算机中加载,但在 Windows 计算机上同样有效。不明白为什么?

java - Spring thymeleaf MVC 表单不填充对象字段

java - 将数据添加到另一个类的arrayList中

java - SecureFileTransferClient 性能改进

java - 添加对象后列表大小返回0