2015-02-17 7 views
0

Я пытаюсь написать код, чтобы найти специальные символы в строке java.Специальные символы в строке java

Специальные символы [email protected];'#~!£$%^ & *() _ + -. = ¬`,/<>

Пожалуйста, помогите мне понять и написать как я могу это реализовать.

Спасибо

+1

, что такого особенного в A-Za-Z? Ознакомьтесь с регулярными выражениями. – SimY4

ответ

-1

Вы можете создать массив символов из строки.

String string = "test"; 
char[] charArray = string.toCharArray(); 

Затем вы можете перебрать все символы:

for(char character: charArray){ 
    //check if the character is special and do something with it, like adding it to an List. 
} 
+0

Было бы намного проще использовать регулярные выражения вместо определения списка всех специальных символов, а затем сравнивать каждый символ с этим списком – Ascalonian

-1

Вы можете использовать сканер, чтобы найти недопустимые символы в строке:

/* Regex with all character considered non-special */ 
public static final String REGULAR_CHARACTERS = "0-9a-z"; 

public static String specialCharacters(String string) { 
    Scanner scanner = new Scanner(string); 
    String specialCharacters= scanner.findInLine("[^" + REGULAR_CHARACTERS + "]+"); 
    scanner.close(); 
    return specialCharacters; 
} 

findInLine возвращает строку с все символы, не включенные в константу (все специальные символы). Вам нужно настроить константу со всеми символами, которые вы считаете неспецифическими.

В качестве альтернативы, если вы хотите установить только символы, которые вы хотите найти, вы можете изменить приведенный выше пример с:

public static final String SPECIAL_CHARACTERS = "[email protected];'#~!£$%^&*()_+-=¬`,./<>"; 
.... 
String specialCharacters= scanner.findInLine("[" + SPECIAL_CHARACTERS + "]+"); 
.... 

Символы, используемые в константах должны быть scaped как обычно для регулярных выражений.

Например, чтобы добавить ] характер, вам нужно использовать \\]