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

Mover todos los caracteres especiales al final de la cadena usando RegEx en Java)

La siguiente expresión regular coincide con todos los caracteres especiales, es decir, todos los caracteres excepto las letras inglesas, los espacios y los números.

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

Para mover todos los caracteres especiales al final de la línea dada, utilice esta expresión regular para coincidir todos los caracteres especiales con una cadena vacía, luego conectar el resto de los caracteres en otra cadena y conectar estas dos cadenas.

Ejemplo1

public class RemovingSpecialCharacters {
   public static void main(String args[]) {
      String input = "texto # * con caracteres especiales @";
      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("Result: "+inputData+specialChars);
   }
}

Resultado de salida

Resultado: texto con caracteres especiales #*&@

Ejemplo2

A continuación se muestra un programa Java que utiliza los métodos del paquete Regex para desplazar los caracteres especiales de una cadena al final.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String args[]) {
      String input = "texto # * con caracteres especiales @";
      String regex = "[^a-zA-Z0-9\\s+]";
      String specialChars = "";
      System.out.println("Cadena de entrada: 
"+input);
      //Crear un objeto de patrón
      Pattern pattern = Pattern.compile(regex);
      //Coincidir con el patrón compilado en la cadena
      Matcher matcher = pattern.matcher(input);
      //Crear un búfer de cadenas vacío
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         specialChars = specialChars;+matcher.group();
         matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Resultado: 
"+ sb.toString();+specialChars );
   }
}

Resultado de salida

Cadena de entrada:
texto # * con caracteres especiales @
Resultado:
texto con caracteres especiales #*&@
Te gustará