Java字符串replace方法

时间:2020-01-09 10:34:55  来源:igfitidea点击:

在Java String类中,有四种替换方法可以将出现的字符或者字符串替换为另一个字符或者字符串。

  • 字符串replace(char oldChar,char newChar)返回一个字符串,该字符串是用newChar替换此字符串中所有出现的oldChar的结果。参见示例。
  • 字符串replace(CharSequence目标,CharSequence替换)使用指定的文字替换序列替换此字符串中与目标序列匹配的每个子字符串。请注意,替换从字符串的开头到结尾开始,例如,在字符串" aaa"中用" b"替换" aa"将得到" ba"而不是" ab"。参见示例。
  • String replaceAll(String regex,String replacement)用给定的替换项替换与给定的正则表达式匹配的此字符串的每个子字符串。参见示例。
  • 字符串replaceFirst(String regex,字符串替换)使用给定的替换项替换与给定的正则表达式匹配的此字符串的第一个子字符串。参见示例。

让我们看一下这些Java String replace()方法的示例,以使其用法更加清晰。

Java String replace()方法替换字符

在示例中,有一个字符串,其中使用逗号分隔值,并使用replace()方法将其替换为冒号(:)。

public class StringReplace {
  public static void main(String[] args) {
    String str = "A001,BOA,Nicki,12000";
    str = str.replace(',', ':');
    System.out.println(str);
  }
}

输出:

A001:BOA:Nicki:12000

Java String replace()方法替换子字符串

在替换方法的此变体中,CharSequence作为参数而不是char传递。 CharSequence是一个由String,StringBuffer和StringBuilder实现的接口,因此可以传递这些类的对象。

public class StringReplace {
  public static void main(String[] args) {
    String str = "String misspelt as strong so replace strong with string";
    str = str.replace("strong", "string");
    System.out.println(str);
  }
}

输出:

String misspelt as string so replace string with string

Java String replaceAll()方法

使用replaceAll()方法,我们可以传递一个正则表达式,并将所有与该正则表达式匹配的子字符串替换为替换字符串。

在以下示例中,正则表达式与任意数量的空格匹配,这些空格被替换为无空格。

public class StringReplace {
  public static void main(String[] args) {
    String str = "  Test   String    ";
    // Matches any number of spaces
    str = str.replaceAll("\s+", "");
    System.out.println(str);
  }
}

输出:

TestString

Java String replaceFirst()方法

使用replaceFirst()方法,我们可以传递正则表达式,并且只有与该正则表达式匹配的第一个子字符串才被替换字符串替换。

public class StringReplace {
	public static void main(String[] args) {
		String str = "Hello world, Hello again";
		str = str.replaceFirst("Hello", "Hey");
		System.out.println(str);
	}
}

输出:

Hey world, Hello again