You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 2 ME不支持replaceAll(),自定义替换方法正则匹配失效求助

问题诊断

你自行实现的myReplaceAll方法仅支持固定字符串的全局替换,不具备正则表达式解析匹配能力。你传入的[^ A-Za-z0-9]是正则语法规则,你的代码会将它作为一整段普通字符串,去原文本中搜索完全匹配的子串,自然找不到对应内容,所以最终输出和原字符串没有差异,不属于代码逻辑错误,是实现的能力不支持正则匹配场景。

适配你的需求的解决方案

你当前的需求是过滤所有非英文字母、数字、空格的字符,不需要引入正则能力,直接遍历字符判断即可,更适配J2ME的受限运行环境,参考实现代码如下:

public static String filterInvalidChar(String str) {
    StringBuffer result = new StringBuffer();
    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        if ((c >= 'A' && c <= 'Z') 
            || (c >= 'a' && c <= 'z') 
            || (c >= '0' && c <= '9') 
            || c == ' ') {
            result.append(c);
        }
    }
    return result.toString();
}

调用方式:

String pokus = "T+e+s+t č 1";
String test = filterInvalidChar(pokus);
System.out.println(test);
// 输出结果:T e s t  1

通用正则替换的说明

J2ME本身没有内置正则表达式API,如果你需要支持通用的正则替换功能,需要引入适配J2ME的轻量级第三方正则库,不建议在J2ME环境下自行实现完整正则解析逻辑,性能和兼容性都难以保障。

内容的提问来源于stack exchange,提问作者Deesak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:15:10