Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中替换字符串的一部分?_Java_String_Replace_Find_Substring - Fatal编程技术网

如何在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”

我试图替换字符串的一部分,基于其中存在的某个短语。考虑字符串“你好,我的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”开始的字符串,长度为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
这非常有效,谢谢你的建议!但是,在显示修改后的字符串之前,确实需要先将其传递给字符串。