有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java替换字符串中的第二个重复单词

我有这样一个字符串:

"hello I am a example example"

我得到了这个字符串的最后一个字

 String lasttWord = mystring.substring(mystring.lastIndexOf(" ")+1);

但是我不能把它分开,因为这个词是重复的

我怎样才能删除最后一个单词


共 (2) 个答案

  1. # 1 楼答案

    如果希望从字符串中删除重复项,但不确定重复项出现的位置,则可以尝试使用列表(以保持顺序)和集合(以删除重复项)

    然后,可以使用列表重新生成字符串,而无需重复

    以下是代码片段:

    public static void main (String[] args)
    {
        String str = "hello I am a example example"; 
        String[] tokens = str.split(" ");
        Set<String> set = new HashSet<>();
        List<String> list = new ArrayList<>();
        for(String token : tokens) {
            if(!set.contains(token)) {
                set.add(token);
                list.add(token);
            }
        }
    
        /* Print String */
        for(int i = 0; i < list.size(); i++)
            System.out.print(list.get(i) + " ");
    }
    

    输出:

    hello I am a example
    
  2. # 2 楼答案

    按空格拆分字符串并重命名最后一个单词。然后使用StringBuilder将它们连接在一起,返回到原始字符串

    String str = "hello I am a example example"
    String[] parts = str.split(" ");
    parts[parts.length-1] = "moon";
    System.out.println(parts[parts.length-1]); 
    StringBuilder sb = new StringBuilder();
    for (int i=0; i<parts.length; i++) {
       sb.append(parts[i]);
       sb.append(" ");
    }
    str = sb.toString();