Look~ 2021-04-02 13:30 采纳率: 60%
浏览 59
已采纳

java:想实现一个长字符串中 整个单词的替换,(某个单词部分符合 则不进行替换)

例如将 test==》text
替换前
"test, and test but not testing.  But yes to test"

替换后:

"text, and text but not testing.  But yes to text"

替换前后 testing 都不发生改变的。

  • 写回答

2条回答 默认 最新

  • 一剑荒芜 2021-04-02 15:41
    关注
            String ref = "textWord"; // 替换后的值
            String key = "test"; // 要替换的值
            String str = "test, and test but not testing.  But yes to test";
            int kl = key.length();
            List<Integer> list= new ArrayList<>();
            int length = str.length();
            for(int i = 0; i < length; i ++){
                if (i + kl <= length
                        && str.substring(i ,i + kl).equals(key)){
                    if (i + kl == length){
                        list.add(i);
                    }else if (i == 0){
                        list.add(i);
                    }else{
                        String start = str.substring(i + kl, i + kl + 1);
                        String end = str.substring(i + kl, i + kl + 1);
                        if (start.equals(" ") &&  end.equals(" ")
                                ||start.equals(" ") &&  end.equals(",")
                                ||start.equals(" ") &&  end.equals(".")){
                            list.add(i);
                        }
                    }
                }
            }
    
            for(int i = list.size() - 1; i >= 0 ; i --){
                String s = str.substring(0, list.get(i)); // 前
                String e = str.substring(list.get(i) + kl); // 后
                str = s + ref + e;
            }
    
            System.out.println(str);
            System.out.println(list);
    

    控制台输出

    textWord, and textWord but not testing.  But yes to textWord
    [0, 10, 44]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳