如何替换 Java 中的字符串的一部分?
How to replace part of a String in Java?
我正在尝试根据字符串中存在的某个短语来替换字符串的一部分。考虑字符串 "Hello my Dg6Us9k. I am alive.".
我想搜索 "my" 阶段并向右删除 8 个字符,这将删除哈希码。这给出了字符串 "Hello. I am alive." How can i do this in Java?
应该这样做:
String s = ("Hello my Dg6Us9k. I am alive");
s.replace(s.substring(s.indexOf("my"), s.indexOf("my")+11),"");
替换字符串从 "my" 开始,长度为 11 个字符。
您可以通过 string.replaceAll
函数实现。
string.replaceAll("\bmy.{8}", "");
如有必要请添加 \b
。 \b
称为单词边界,匹配单词字符和非单词字符。 .{8}
完全匹配以下 8 个字符。
还要删除 my
之前的 space
System.out.println("Hello my Dg6Us9k. I am alive.".replaceAll("\smy.{8}", ""));
像这样使用正则表达式:
public static void main(String[] args) {
String s = "Hello my Dg6Us9k. I am alive";
String newString=s.replaceFirst("\smy\s\w{7}", "");
System.out.println(newString);
}
O/P :
Hello. I am alive
Java 字符串是不可变的,因此您不能 更改 字符串。您必须创建一个新字符串。因此,找到 "my" 的索引 i。然后连接 (0...i) 之前和 (i+8...).
之后的子串
int i = s.indexOf("my");
if (i == -1) { /* no "my" in there! */ }
string ret = s.substring(0,i);
ret.concat(s.substring(i+2+8));
return ret;
如果您想灵活调整哈希码长度,请使用以下正则表达式:
String foo="Hello my Dg6Us9k. I am alive.";
String bar = foo.replaceFirst("\smy.*?\.", ".");
System.out.println(bar);
我正在尝试根据字符串中存在的某个短语来替换字符串的一部分。考虑字符串 "Hello my Dg6Us9k. I am alive.".
我想搜索 "my" 阶段并向右删除 8 个字符,这将删除哈希码。这给出了字符串 "Hello. I am alive." How can i do this in Java?
应该这样做:
String s = ("Hello my Dg6Us9k. I am alive");
s.replace(s.substring(s.indexOf("my"), s.indexOf("my")+11),"");
替换字符串从 "my" 开始,长度为 11 个字符。
您可以通过 string.replaceAll
函数实现。
string.replaceAll("\bmy.{8}", "");
如有必要请添加 \b
。 \b
称为单词边界,匹配单词字符和非单词字符。 .{8}
完全匹配以下 8 个字符。
还要删除 my
System.out.println("Hello my Dg6Us9k. I am alive.".replaceAll("\smy.{8}", ""));
像这样使用正则表达式:
public static void main(String[] args) {
String s = "Hello my Dg6Us9k. I am alive";
String newString=s.replaceFirst("\smy\s\w{7}", "");
System.out.println(newString);
}
O/P :
Hello. I am alive
Java 字符串是不可变的,因此您不能 更改 字符串。您必须创建一个新字符串。因此,找到 "my" 的索引 i。然后连接 (0...i) 之前和 (i+8...).
之后的子串int i = s.indexOf("my");
if (i == -1) { /* no "my" in there! */ }
string ret = s.substring(0,i);
ret.concat(s.substring(i+2+8));
return ret;
如果您想灵活调整哈希码长度,请使用以下正则表达式:
String foo="Hello my Dg6Us9k. I am alive.";
String bar = foo.replaceFirst("\smy.*?\.", ".");
System.out.println(bar);