Zeichen in String ersetzen (war: java.util...)
-
Hallo!
Ich möchte gerne die spacer aus einem String schneiden. Da habe ich folgendes im Archiv gefunden:
String str = new String("10+20+30"); String out = str.replace('+', ' ');
SEHR SCHÖN
Nur leider muß ich erst das java.util - Paket importieren.
Wie macht man das?
Wenn ichimport java.util.regex.*;
in die cpp schreibe, will er das nicht
Habe bisher nur mit #include eingebunden...
Hoffe ihr helft mir
DiV
rookie12
-
Java hat wohl nix mit dem String zu tun... da hängt es woanders.
-
Möchtest du in's Java-Forum verschoben werden oder geht es dir tatsächlich um den C++Builder?
-
Nei, Nein! Sorry!
Ich habe da bei der Suche wohl nicht nach BcB selektiert
Das Problem bleibt aber: Wie kann ich (einfach) bestimmte Zeichen aus einem String eleminieren?Gruß
rookie12
-
Falls du also doch den BCB meinst: sieh dir die Funktion StringReplace() an. Beispiele findest du in der Hilfe und/oder per Suchfunktion hier im Forum.
-
@Jansen du warst wohl eben schneller...
StringReplace() ist suuuper!
Nur leider kennt BcB1 das noch nicht. Da ich das Projekt mit 1 begonnen habe und ich bisher immer Probs mit konvertieren hatte, würde ich gerne 'ne elegante Lösung für BcB1 durchführen (ohne switch od. SubString)...DiV
rookie12
-
Wenn nichts besseres gibt, habe ich mir sowas
AnsiString text1,text2; text1 = "Hello Wold !."; for(int i = 0; i < text1.Length()+1; i++) { char curChar = text1[i]; switch(curChar) { // spacer soll raus case ' ' : // nix ,machen; default: text2 += curChar; } } Label1->Caption = text2; }
gedacht.
Leider klappt es so auch nicht. Hab ich was falsch gemacht?DiV
rookie12
-
"Klappt nicht" usw. ist keine vernünftige Problembeschreibung.
Du hast die breaks im switch/case vergessen.
Statt letzterem wäre eine einfache if-Abfrage aber ohnehin eher angebracht. Es sei denn, du willst mehrere verschiedene Zeichen ersetzen.
-
@ Jansen: Hast ja recht, ich habe etwas zu schnell gepostet.
Habe aber zum Glück 'isspace' gefunden...// Spacer aus text1 u. text2 entfernen und in CAntwort bzw. CVergleich überführen for(int i = 0; i < text1.Length()+1; i++){ char curChar = text1[i]; if (isspace(curChar)){} else {CVergleich += curChar;} } for(int i = 0; i < text2.Length()+1; i++){ char curChar = text2[i]; if (isspace(curChar)){} else {CAntwort += curChar;} }
Trotzdem Danke!
Gruß
roookie12
-
Was heisst hier 'aber' und 'trotzdem'?
Schliesslich ist isspace nicht wirklich eleganter oder effizienter als ein direkter Vergleich zweier chars.Deine for-Schleifen funktionieren auch nicht korrekt: der Index von AnsiStrings beginnt bei 1, nicht bei 0.
Und wozu das else? Du brauchst lediglich ein if.
Denk mal drüber nach.