Вы можете использовать сканер, чтобы найти недопустимые символы в строке:
/* 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 как обычно для регулярных выражений.
Например, чтобы добавить ]
характер, вам нужно использовать \\]
, что такого особенного в A-Za-Z? Ознакомьтесь с регулярными выражениями. – SimY4