5

string.replace()文字列内のすべてのアルファベットを置き換えるために使用できるかどうか疑問に思っていますか?

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

つまり、アルファベットをどのように表現すればよいのでしょうか?

長すぎない限り、代替案も歓迎します。

4

4 に答える 4

11

JavaString#replaceAllは引数として正規表現文字列を取ります。つまり、 to (小文字) とto (大文字) の任意の文字に[a-ZA-Z]一致し、それが必要なようです。azAZ

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

ここでデモを参照してください。

于 2013-11-10T05:58:52.933 に答える
6

正規表現String#replaceAllを取る使用:

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

RegexString#replaceではなく String を引数として取ることに注意してください。それでも使用したい場合は、String char-by-char をループして、この文字が [az] または [AZ] の範囲内にあるかどうかを確認し、 に置き換える必要があります。しかし、それが宿題ではなく、使用できる場合は、それを使用してください:)@replaceAll

于 2013-11-10T05:58:51.410 に答える
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

于 2013-11-10T06:07:21.130 に答える