使用replace替换字符串中的字母?

时间:2013-11-10 05:57:01

标签: java replace

我想知道我是否可以使用string.replace()替换字符串中的所有字母?

String sentence = "hello world! 722"
String str = sentence.replace("what to put here", "@");
//now str should be "@@@@@ @@@@@! 722"

换句话说,我如何表示字母字符?

除非太长,否则也欢迎替代品。

4 个答案:

答案 0 :(得分:9)

Java String#replaceAll将正则表达式字符串作为参数。有人说,[a-ZA-Z]匹配从az(小写)和AZ(大写)的任何字符,这似乎是你需要的

String sentence = "hello world! 722";
String str = sentence.replaceAll("[a-zA-Z]", "@");
System.out.println(str); // "@@@@@ @@@@@! 722"

请参阅demo here

答案 1 :(得分:6)

使用带有正则表达式String#replaceAll

str = str.replaceAll("[a-zA-Z]", "@");

请注意String#replace将String作为参数而不是 Regex 。如果您仍想使用它,则应循环使用String char-by-char并检查此char是否在[az]或[AZ]范围内,替换为{{1} }。但如果它不是作业,你可以使用@,请使用它:)

答案 2 :(得分:2)

您可以使用以下(正则表达式):

    String test = "hello world! 722";
    System.out.println(test);
    String testNew = test.replaceAll("(\\p{Alpha})", "@");
    System.out.println(testNew);

您可以在此处阅读所有相关信息:http://docs.oracle.com/javase/tutorial/essential/regex/index.html

答案 3 :(得分:0)

您可以将正则表达式替换为String#replaceAll。模式[a-zA-Z]将匹配所有小写英文字母(a-z)和所有大写英文字母(A-Z)。请参阅下面的代码here

final String result = str.replaceAll("[a-zA-Z]","@"); 

如果要替换所有语言环境中的所有字母字符,请使用模式\p{L}Pattern的文档指出:

\ p {L}和\ p {IsL}都表示Unicode字母的类别。

请参见下面的代码here

final String result = str.replaceAll("\\p{L}", "@");