2013-11-10 2 views
3

Мне интересно, могу ли я использовать string.replace() для замены всех алфавитов в строке?Заменить алфавит в строке с помощью замены?

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

Другими словами, как я могу представить алфавитные символы?

Альтернативы приветствуются, если не слишком долго.

ответ

8

Java String#replaceAll принимает строку регулярных выражений в качестве аргумента. Говорят, что [a-ZA-Z] соответствует любому знаку от a до z (нижний регистр) и A до Z (в верхнем регистре), и это похоже на то, что вам нужно.

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

См. demo here.

+0

Подробнее о '[a-zA-Z]' regex здесь: http://www.regular-expressions.info/ charclass.html – acdcjunior

5

Использование String#replaceAll, который принимает Regex:

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

Обратите внимание, что String#replace принимает строку в качестве аргумента и не Regex. Если вы все еще хотите использовать его, вы должны зациклиться на символе Shring и проверить, находится ли этот символ в диапазоне [a-z] или [A-Z] и , заменить его @. Но если это не домашнее задание, и вы можете использовать replaceAll, используйте его :)

+0

это странно, но я обнаружил, что [A-Za-Z] работает, но [ az] [AZ] не будет .. – Arch1tect

+0

@ Arch1tect Это не странно, моя ошибка :)) – Maroun

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

+0

+1 для альтернативного решения, которое может быть очень полезно для OP. – Maroun

+0

Я бы сказал, что это скорее первичное решение, а решения a-zA-Z являются альтернативой только для большинства английских локалей. (Гавайские работы тоже.: ^) –

Смежные вопросы