相关疑难解决方法(0)

Java查找和替换字符串的最佳方法?

我正在寻找Java中字符串查找和替换的最佳方法.

这是一句话:"我的名字是米兰,人们都认为我是米兰瓦西奇".

我想用米兰瓦西奇代替米兰,但在我已经有米兰瓦西奇的地方,这应该不是一个案例.

搜索/替换后的结果应该是:"我的名字是米兰瓦西奇,人们都认识我为米兰瓦西奇".

我尝试使用indexOf()以及Pattern/Matcher组合,但我的结果都不优雅,有人有优雅的解决方案吗?

干杯!

java string

29
推荐指数
4
解决办法
11万
查看次数

Java中的多个同时子串替换

(我来自蟒蛇世界,所以我道歉,如果我使用的标准中的一些术语与常规.)

我有String一个List开始/结束索引来代替.没有太多细节,请考虑这个基本的模型:

String text = "my email is foo@bar.com and my number is (213)-XXX-XXXX"
List<Token> findings = SomeModule.someFnc(text);
Run Code Online (Sandbox Code Playgroud)

Token有定义

class Token {
    int start, end;
    String type;
}
Run Code Online (Sandbox Code Playgroud)

List表示我正在尝试编辑的敏感数据的开始和结束位置.

实际上,API返回我迭代的数据以获得:

[{ "start" : 12, "end" : 22, "type" : "EMAIL_ADDRESS" }, { "start" : 41, "end" : 54, "type" : "PHONE_NUMBER" }]
Run Code Online (Sandbox Code Playgroud)

使用这些数据,我的最终目标是编辑text这些Token对象指定的标记,以获得:

"my email is [EMAIL_ADDRESS] and my number is [PHONE_NUMBER]"
Run Code Online (Sandbox Code Playgroud)

使这个问题变得非常重要的是,替换子串的长度并不总是与它们所替换的子串相同.

我目前的行动计划是构建一个StringBuilderfrom text,按照起始索引的相反顺序对这些ID进行排序,然后从缓冲区的右端进行替换. …

java string stringbuilder

11
推荐指数
1
解决办法
853
查看次数

如何替换多个匹配的正则表达式

我有一组正则表达式替换需要应用于一组字符串,

例如:

  1. 所有多个空格都带有单个空格("\s{2,}" --> " ")
  2. 全部 。后跟一个 char 。后跟空格,后跟字符 (\.([a-zA-Z]-->". $1")

所以我会有这样的东西:

String s="hello     .how are you?";
s=s.replaceAll("\\s{2,}"," ");
s=s.replaceAll("\\.([a-zA-Z])",". $1");
....
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是想象一下我正在尝试替换一个长字符串上的 100 多个这样的表达式。不用说这有多慢。

所以我的问题是是否有一种更有效的方法来使用单个replaceAll(或类似的东西,例如模式/匹配器)来概括这些替换

我已经按照Java替换了多个不同的...

但问题是我的正则表达式不是simple Strings

java regex string

5
推荐指数
1
解决办法
7561
查看次数

String中的java参数替换

我正在寻找一种方法来替换字符串中的变量值.这是我的字符串:

"cp $myfile1 $myfile2"
Run Code Online (Sandbox Code Playgroud)

事实上,我查看了javadoc,似乎我可以使用String类中的split()方法,但是我也看到了一篇文章,似乎可以用regex和replaceAll()替换所有变量方法.不幸的是,我没有找到最后一个解决方案的任何例子.

在我的情况下是否可以使用replaceAll(带示例)?

java regex

2
推荐指数
1
解决办法
2474
查看次数

标签 统计

java ×4

string ×3

regex ×2

stringbuilder ×1