实现java 1.2中的replaceAll功能

时间:2015-04-19 08:36:12

标签: java

我有以下代码

import java.io.*;

public class Test{
public static void main(String args[]){
  String Str = new String("Welcome to java world !");

  System.out.print("Return Value :" );
  System.out.println(Str.replaceAll(" ",
                     "%20" ));
}
}

这会产生以下结果:

Return Value :Welcome%20to%20java%20world%20!

但问题是我在我们的项目中使用遗留的java 1.2,不支持String类中的replaceAll或StringBuffer类中的replace。如何在java 1.2中实现replaceAll逻辑以用%20替换所有空格

1 个答案:

答案 0 :(得分:5)

当我说你应该从1.2迁移时,我 非常 严重,但即使你正在弄乱古老的版本,它也不像你没有一些原始工具。

StringTokenizer可供使用,并且考虑到默认情况下它可以使用空格对字符串进行标记,这应该会让您了解如何解决此问题。

步骤很简单:

  • 创建StringTokenizer实例
  • 通过tokenizer使用字符串并将其放入StringBuffer
  • 消费完字符串后,立即将"%20"放在
  • 之后
  • 如果没有其他要添加的令牌,请不要添加上一个字符串

作为粗略,未经测试的*方法,这是我想要的:

public String replace(String phrase, String token, String replacement) {
    StringTokenizer st = new StringTokenizer(phrase, token);
    StringBuffer stringBuffer = new StringBuffer();
    while(st.hasMoreTokens()) {
        stringBuffer.append(st.nextToken());
        stringBuffer.append(replacement);
    }
    return stringBuffer.toString();
}

*:untestable;我不能不会下载Java 1.2的副本。