Entfernen Sie alle Interpunktionszeichen am Ende eines Strings

9

Beispiele :

%Vor%

Folgendes habe ich bisher:

%Vor%

%Vor%

Diese aktuelle Lösung funktioniert, aber da sie bereits String.replaceAll in endsWithRegex aufruft, sollten wir in etwa folgendes tun können:

%Vor%

Irgendwelche Ratschläge?

    
Bᴜᴅɪ 23.10.2015, 17:27
quelle

4 Antworten

3

Ich schlage vor,

zu verwenden %Vor%

Es passt optionale Leerzeichen und Interpunktion am Ende der Zeichenfolge.

Wenn Ihnen der Leerraum egal ist, verwenden Sie einfach \p{Punct}+$ .

Vergessen Sie nicht, dass Backslashes in Java-Strings verdoppelt werden sollten, um literale Backslashes zu bezeichnen (die als Regex-Escape-Symbole verwendet werden müssen).

Java-Demo

%Vor%     
Wiktor Stribiżew 23.10.2015, 17:37
quelle
1

Sie können verwenden:

%Vor%

Um auch Leerzeichen einzufügen:

%Vor%     
anubhava 23.10.2015 17:34
quelle
0

Wie wäre es damit, wenn Sie einen kleinen Schlag in der Effizienz nehmen können.

  1. kehrt die Eingabezeichenfolge um

  2. entfernen Sie Zeichen, bis Sie ein Alphabet

  3. treffen
  4. Kehren Sie die Zeichenfolge um und geben Sie

  5. zurück
AbtPst 23.10.2015 17:41
quelle
0

Ich habe die Logik Ihrer Methode geändert

%Vor%

und Ihre Regex ist: regex = ".*[^a-zA-Z]$";

    
Siva Kumar 23.10.2015 17:45
quelle

Tags und Links