2016-04-06 19 views
0

Ich brauche dich etwas zu fragen, über meine problem.Try sich vorzustellen, dass ein eine Zeichenfolge haben wie: „23221323,213213,123213 ,,,“Regular Expression für Zeichen,

Ich habe mich in mehrere Websites, aber ich finde nichts. Ich brauche einen regulären Ausdruck, wie das Zeichen zu entfernen (,) ..

Ich meine, ich will die letzten entfernen, wenn sie mehr als 1:

Beispiel:

„2323,3434 , 2332" ==> seine OK

„3434,21321,45454 ,,,, ==> BAD. müssen Sie die letzten 3, entfernen Sie nur 1 endgültig erlaubt.

Eigentlich habe ich etwas in Java, das funktioniert:

String sCadena="asd,"; 
      CharSequence cs1 = ",,"; 
      CharSequence cs2 = ",,,"; 
      CharSequence cs0 = ","; 

      if(sCadena.contains(cs2)){ 
       sCadena=sCadena.substring(0, sCadena.length() - 3); 
      } 


      else if (sCadena.contains(cs1)){ 
       sCadena=sCadena.substring(0, sCadena.length() - 2); 
      } 


      else if (sCadena.contains(cs0)){ 
       sCadena=sCadena.substring(0, sCadena.length() - 1); 
      } 



}  

Aber ich mag einen regulären Ausdruck machen, dies zu vermeiden, denn wenn der Benutzer eine Menge von (,) eingeben, ich habe mehr zu implementieren, wenn diese zu steuern ....

Irgendwelche Ideen ??

+0

Mögliche Duplikat [Lernen Reguläre Ausdrücke] (http://stackoverflow.com/questions/4736/learning-regular-expressions) – TocToc

+0

Wird es irgendwelche Zahlen geben, denen das letzte Komma folgt? – TheLostMind

+0

nein, es wird nicht. der reguläre Ausdruck muss die Kommas entfernen, die nicht notwendig sind. – Dekker

Antwort

1

Dies sollte für Sie arbeiten:

public static void main(String[] args) { 
    String s = "23221323,213213,123213,,,"; 
    s = s.replaceAll(",+$",","); // replaces all trailing commas with a single one 
    System.out.println(s); 
    } 

O/P:

23221323,213213,123213,

+0

Das ist es, danke Kumpel. Das ist genau das, was ich brauche: String s = "23221323,213213,123213 ,,,,,,,,,"; \t \t s = s.replaceAll (", + $", ""); // ersetzt alle nachfolgenden Kommas durch einen einzigen \t \t System.out.println (s); Ihre Funktion, aber der zweite Parameter muss leer sein. wirklich danke TheLostMind – Dekker

+0

Du brauchst ein Komma am Ende rechts? @Dekker .. Oder willst du am Ende alle Kommas entfernen? – TheLostMind

+0

Alles in Ordnung, ich habe alles, was ich brauche TheLostMind: das ist die Funktion, die ich brauche. Danke: String s = "23221323,213213,123213 ,,,,,,,,,,"; \t \t s = s.replaceAll (", + $", ""); // ersetzt alle nachfolgenden Kommas durch einen einzigen \t \t System.out.println (s); – Dekker