替换任意长度的子字符串

时间:2017-09-19 17:02:54

标签: java string replace substring

我需要替换任意长度的子串。例如,在两个空格之间。

实施例

String str = "Insert random message here";
// Manipulation
System.out.println(str);

// Outputs: Insert a message here

我在String-class中搜索过一个方法但是我找不到有用的方法。 (可能是因为我的英语不好......)

3 个答案:

答案 0 :(得分:1)

System.out.println让我觉得这是Java。 您可以使用对象的replaceAll函数将字符串块/匹配的正则表达式替换为另一个给定的字符串。

String str = "I am foo";
str.replaceAll("foo", "blah");
System.out.println(str);

以上代码应打印"我是等等#34;。

答案 1 :(得分:0)

最直接的解决方案是使用一对子串调用并连接结果:

personCriteriaQuery.where(criteriaBuilder.like(
    criteriaBuilder.lower(personRoot.get(Person_.description)), 
    "%"+filter.getDescription().toLowerCase()+"%"));   
  • 请注意,我的数学很糟糕,所以这些数字可能会减少一两个!

  • 编辑使用变量代替“魔数”

编辑补充说:我可能没有使用与OP相同的语言,但希望它足够接近理解。

答案 2 :(得分:0)

您可以将replaceFirst与此正则表达式\s(.*?)\s一起使用,这意味着匹配两个空格之间的第一个单词,如下所示:

String str = "Insert random message here";
str = str.replaceFirst("\\s(.*?)\\s", " a ");
System.out.println(str);

输出

Insert a message here