【问题标题】:In JDK 1.3 String.replaceall() not working. any alternate solution在 JDK 1.3 String.replaceall() 中不起作用。任何替代解决方案
【发布时间】:2018-05-10 14:09:00
【问题描述】:

我试图在 JDK 1.3 中运行下面提到的代码并给出错误,因为 JDK1.3 不支持 string.replaceall

strtobeReplaced = strtobeReplaced.replaceall("&","&");

strtobeReplaced = strtobeReplaced.replaceall("].value","");

任何人都可以建议 java 1.3 中的替代代码吗?

【问题讨论】:

  • 由于 regex 直到 Java 4 才被添加,你需要一个第三方的 regex 库。或者从那个古老的 Java (于 2000 年发布,2002 年被 Java 4 取代) 升级。或者,由于您实际上并未使用正则表达式,因此请使用 indexOfsubstringStringBuffer 编写自己的循环。
  • replaceAll 在 Java 1.4 中添加。你可以向后移植PatternMatcher,但你为什么要打扰呢?您知道 1.3 已经停产十多年了吗?

标签: java string str-replace replaceall


【解决方案1】:

StringBuffer 自 Java 诞生以来就一直存在

因此,也许可以使用一个简单的循环并根据需要使用sb.append() 方法。

static String replace(char rep, String replacement, String word) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < word.length(); i++) {
        if(word.charAt(i) == rep){
            sb.append(replacement);
        }
        else{
            sb.append(word.charAt(i));
        }
    }
    return sb.toString();
}

警告:这只是一个指导方针,仅当 要替换 部分是一个单独的字符时才有效,如果它是,您需要解决这个想法多个字符。

Example

【讨论】:

  • 关闭。但是rep 需要是String 用于第二个用例
  • @StephenC 啊,确实如此,我实际上从来没有看过比标题更多的东西。我想现在它更像是一个关于如何做的指导方针:) - 所以添加了一个警告......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 2018-04-26
  • 2011-04-13
  • 2016-10-24
  • 1970-01-01
相关资源
最近更新 更多