如何在Java中替换字符串的一部分?
我试图替换字符串的一部分,基于其中存在的某个短语。考虑字符串“你好,我的DG6U99K。我还活着”。 我想搜索阶段“my”并删除右边的8个字符,这将删除哈希代码。这将给出字符串“Hello.I am alive”。我如何在Java中执行此操作?这应该可以做到:如何在Java中替换字符串的一部分?,java,string,replace,find,substring,Java,String,Replace,Find,Substring,我试图替换字符串的一部分,基于其中存在的某个短语。考虑字符串“你好,我的DG6U99K。我还活着”。 我想搜索阶段“my”并删除右边的8个字符,这将删除哈希代码。这将给出字符串“Hello.I am alive”。我如何在Java中执行此操作?这应该可以做到: String s = ("Hello my Dg6Us9k. I am alive"); s.replace(s.substring(s.indexOf("my"), s.indexOf("my")+11),""); 这将替换从“my”
String s = ("Hello my Dg6Us9k. I am alive");
s.replace(s.substring(s.indexOf("my"), s.indexOf("my")+11),"");
这将替换从“my”开始的字符串,长度为11个字符,没有任何内容。这应该可以:
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}", ""));
您可以通过
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:
你好。我还活着像这样使用正则表达式:
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:
你好。我还活着Java字符串是不可变的,因此不能更改字符串。您必须创建一个新字符串。所以,找到“我的”的索引i。然后连接(0…i)之前和之后(i+8…)的子字符串
Java字符串是不可变的,因此不能更改字符串。您必须创建一个新字符串。所以,找到“我的”的索引i。然后连接(0…i)之前和之后(i+8…)的子字符串
如果您想灵活调整哈希代码长度,请使用以下regexp:
String foo="Hello my Dg6Us9k. I am alive.";
String bar = foo.replaceFirst("\\smy.*?\\.", ".");
System.out.println(bar);
如果您想灵活调整哈希代码长度,请使用以下regexp:
String foo="Hello my Dg6Us9k. I am alive.";
String bar = foo.replaceFirst("\\smy.*?\\.", ".");
System.out.println(bar);
“必要时添加\\b”是什么意思?它有什么作用?@LastMind根据他的expexted输出进行了编辑,但他说我想搜索“我的”阶段,并删除右侧的8个字符“@AvinashRaj-ya。。但一旦我运行了这个程序,他的预期输出与他的问题不同:)你说的“如果需要添加\\b”是什么意思?它有什么作用?@LastMind根据他的expexted输出进行了编辑,但他说我想搜索“我的”阶段,并删除右侧的8个字符“@AvinashRaj-ya。。但一旦我运行了这个程序,他的预期输出与他的问题不同:)括号前的w表示它将搜索一个单词?7是最大长度还是所需长度?@Kahler-精确为7。w可以匹配
a-zA-Z
这非常有效,谢谢你的建议!但是,在显示修改后的字符串之前,需要先将其传递给字符串。括号前的w表示它将搜索一个单词?7是最大长度还是所需长度?@Kahler-精确为7。w可以匹配a-zA-Z
这非常有效,谢谢你的建议!但是,在显示修改后的字符串之前,确实需要先将其传递给字符串。