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

使用Java RegEx将所有大写字母移动到字符串的末尾

Espressione regolare secondaria “ [] ”Corrisponde a tutti i caratteri specificati tra parentesi quadre. Pertanto, per spostare tutte le lettere maiuscole alla fine della stringa -

  • Esplora tutti i caratteri nella stringa data.

  • Usare l'espressione regolare “ [AZ] “Corrisponde a tutte le lettere maiuscole nella stringa data.

  • Concatena i caratteri speciali e il resto dei caratteri in due stringhe diverse.

  • Infine, concatena la stringa di caratteri speciali con un'altra stringa.

Esempio 1

public class RemovingSpecialCharacters {
   public static void main(String args[]) {
      String input = "testo campione B C con G maiuscola LM caratteri tra";
      String regex = "[A-Z]";
      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("Risultato: " + inputData + specialChars);
   }
}

Risultato di output

Risultato: sample text with upper case characters in between BCGLM

Esempio 2

Di seguito è riportato un programma Java che utilizza i metodi del pacchetto Regex per spostare le lettere maiuscole 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 B C con G maiuscola LM caratteri tra";
      String regex = "[A-Z]";
      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 una stringa buffer vuota
      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 B C con G maiuscola LM caratteri tra
Risultato:
testo campione con caratteri maiuscoli tra BCGLM