gpt4 book ai didi

Java正则表达式从字符串中删除匹配项

转载 作者:行者123 更新时间:2023-11-30 01:48:22 27 4
gpt4 key购买 nike

我正在尝试找出如何从我的字符串中删除找到的匹配项。所以我的代码示例目前如下所示:

public void checkText() {
String helper = "985, 913, 123, SomeotherText, MoreText, MoreText";
Pattern pattern = Pattern.compile("\\b\\d{3}");
Matcher matcher = pattern.matcher(helper);
while (matcher.find()) {
String newtext = "Number: " + matcher.group() + "\n"+ newtext;
helper.replaceAll(matcher.group(),"");
}
newtext = newtext + "________________\n"+ helper;
editText.setText(newtext);
}

所以我的输入字符串是:985, 913, 123, SomeotherText, MoreText, MoreText

运行代码后我想看到的是这样的:

Number: 985
Number: 913
Number: 123
________________________
SomeotherText, MoreText, MoreText

任何人都可以告诉我当前代码有什么问题吗?

最佳答案

您可以在代码中更新一些内容:

  • 您应该将替换的返回设置为helper
  • 如果仅替换为空字符串,则替换中的字符串将以 , , , 开头,并保留逗号和后面的空格
  • 您可以初始化变量String newtext = "";

查看Java demo

您的代码可能如下所示:

String helper = "985, 913, 123, SomeotherText, MoreText, MoreText";
Pattern pattern = Pattern.compile("\\b\\d{3}");
Matcher matcher = pattern.matcher(helper);
String newtext = "";

while (matcher.find()) {
newtext = "Number: " + matcher.group() + "\n"+ newtext;
helper = helper.replaceAll(matcher.group() + ", ","");
}
newtext = newtext + "________________\n"+ helper;
System.out.println(newtext);

结果:

Number: 123
Number: 913
Number: 985
________________
SomeotherText, MoreText, MoreText

关于Java正则表达式从字符串中删除匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56989044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com