English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

使用Java正则表达式RegEx将所有特殊字符移动到字符串的末尾)

Ecco un'espressione regolare che abbinamento tutti i caratteri speciali, ossia tutti i caratteri diversi da lettere inglesi, spazi e numeri.

"[^a-zA-Z0-9\\s+]"

Per spostare tutti i caratteri speciali alla fine della riga data, utilizzare questa espressione regolare per abbinare tutti i caratteri speciali a una stringa vuota, connettere i restanti caratteri in un'altra stringa e connettere queste due stringhe alla fine.

Esempio 1

public class RemovingSpecialCharacters {
   public static void main(String args[]) {
      String input = "testo campione#*testo*con&caratteri speciali@";
      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;
         } else {
            inputData = inputData + ch;
         }
      }
      System.out.println("Risultato: " + inputData + specialChars);
   }
}

Risultato di output

Risultato: sample text with special characters#*&@

Esempio 2

Ecco un programma Java che utilizza i metodi del pacchetto Regex per spostare i caratteri speciali alla fine della stringa.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String args[]) {
      String input = "testo campione#*testo*con&caratteri speciali@";
      String regex = "[^a-zA-Z0-9\\s+]";
      String specialChars = "";
      System.out.println("Stringa di input:\n"+input);
      //Creare un oggetto schema
      Pattern pattern = Pattern.compile(regex);
      //Abbinare la stringa con lo schema già compilato
      Matcher matcher = pattern.matcher(input);
      //Creare un buffer di stringa vuoto
      StringBuffer sb = new StringBuffer();
      while(matcher.find()) {
         specialChars = specialChars+matcher.group();
         matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Risultato:\n"+sb.toString()+specialChars);
   }
}

Risultato di output

Stringa di input:
testo campione#*testo*con&caratteri speciali@
Risultato:
testo campione con caratteri speciali#*&@