不使用replace或replaceAll替换字符串内容

时间:2011-04-18 17:17:10

标签: java replace

我有一个String变量:

String str = " abc boy abc funny os abc abcifff abc abc boy abc";

我想将“abc”替换为“the”,这会导致:

the boy the funny os the abcifff the the boy the

如何在不使用replacereplaceAll的情况下执行此操作?

3 个答案:

答案 0 :(得分:3)

这听起来像是家庭作业或类似问题,所以我会给你一些提示。

(1)查看Java StringTokenizer

(2)考虑如何在类似(伪代码)的循环中使用它:

while there are substrings left to process
    get the next substring in s
    if that is "abc"
       append "the" to the result
    else
       append s to the result

不要忘记处理单词之间的空格。

答案 1 :(得分:0)

规则需要创造性的解释!使用Pattern类!

Pattern.compile("abc").matcher(yourString).replaceAll("the")

答案 2 :(得分:0)

根据评论,replaceAll的禁令是由于误解造成的,请试试这个:

System.out.println(" abc boy abc funny os abc abcifff abc abc boy abc".replaceAll(
            "( ?)abc( +|$)", "$1the$2"));

输出:

  有趣的男孩是男孩的abcifff