English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ниже приведен регулярный выражение, которое соответствует всем специальным символам, то есть всем символам, кроме английских букв, пробелов и цифр.
"[^a-zA-Z0-9\\s+]"
Чтобы переместить все специальные символы в конец строки, используйте этот регулярный выражение для соответствия всех специальных символов пустой строке, а затем объедините оставшиеся символы в другую строку и объедините эти две строки.
public class RemovingSpecialCharacters { public static void main(String args[]) { String input = "sample # text * with & special@ characters"; String regex = "[^a-zA-Z0-9\\s+]"; String specialChars = ""; String inputData = ""; for(int i = 0; i < input.length(); i++) { char ch = input.charAt(i); if(String.valueOf(ch).matches(regex)) { specialChars = specialChars + ch; } inputData = inputData + ch; } } System.out.println("Результат: " + inputData + specialChars); } }
Результат вывода
Результат: sample text with special characters#*&@
Вот пример Java-программы, которая использует методы пакета Regex для перемещения специальных символов строки в её конец.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String args[]) { String input = "sample # text * with & special@ characters"; String regex = "[^a-zA-Z0-9\\s+]"; String specialChars = ""; System.out.println("Входная строка: \n"+input); //Создание объекта шаблона Pattern pattern = Pattern.compile(regex); //Соответствие строки уже скомпилированному шаблону Matcher matcher = pattern.matcher(input); //Создание пустой строки буфера StringBuffer sb = new StringBuffer(); while (matcher.find()) { specialChars = specialChars+matcher.group(); matcher.appendReplacement(sb, ""); } matcher.appendTail(sb); System.out.println("Результат: \n"+ sb.toString()+specialChars ); } }
Результат вывода
Входная строка: sample # text * with & special@ characters Результат: sample text with special characters#*&@