当前位置: 首页> 文旅> 艺术 > 书籍替换字符串中连续出现的制定字符串(5)0805

书籍替换字符串中连续出现的制定字符串(5)0805

时间:2025/7/11 4:58:25来源:https://blog.csdn.net/qq_30750287/article/details/140938478 浏览次数:1次

题目

给定三个字符串str from和to,把str中所有from的子串全部替换成to字符串,对连续出现from的部分要求只替换成一个to字符串,返回最终的结果字符串。

举例

str = “123abc” from=“abc” to=“4567” 返回 1234567

str=“123” from=“abc” to=“456” 返回123

str=“123abcabc” from=“abc” to=“X” 返回123X

public class REPLACE {public static void main(String[] args) {String str = "123abc";String from = "abc";String to = "4567";System.out.println(new REPLACE().replace(str, from, to));}public  String replace(String str, String from, String to) {if (str == null || from == null || to == null || str.equals("") || from.equals("")) {return str;}char[] chas = str.toCharArray();char[] chaf = from.toCharArray();int match = 0;for (int i = 0; i < chas.length; i++) {if (chas[i] == chaf[match++]) {if (match == chaf.length) {clear(chas, i , chaf.length);match = 0;}}else { // 出现不匹配的字符,重置matchmatch = 0;}}String res ="" ;String cur ="";for (int i = 0; i < chas.length; i++) {if (chas[i] != 0) {cur += chas[i];}if (chas[i] == 0 && (i == 0 || chas[i-1] != 0)){res = res + cur + to;cur = "";}}if (!cur.equals("")){res = res + cur;}return res;}public  void clear ( char[] chas, int end, int len){while (len-- != 0) {chas[end--] = 0;}}
}

关键字:书籍替换字符串中连续出现的制定字符串(5)0805

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: