我需要替换任意长度的子串。例如,在两个空格之间。
实施例
String str = "Insert random message here";
// Manipulation
System.out.println(str);
// Outputs: Insert a message here
我在String-class中搜索过一个方法但是我找不到有用的方法。 (可能是因为我的英语不好......)
答案 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