Java - Letztes Zeichen im String löschen

Babasss

Cadet 2nd Year
Registriert
Sep. 2006
Beiträge
28
Moin,
ich sitze seit Montag hier an einem Programm, welches sich Zertifikatsdaten aus einer MySQL Datenbank holt und dann im Falle eines baldigen Ablaufs des Datums eine oder mehrere EMails verschickt.

Die meisten Funktionen habe ich bereits fertig, nur an einer Kleinigkeit komme ich einfach nicht weiter...und zwar werden alle betroffenen EMail Adressen in eine ArrayList geschrieben und anschließend mit Kommatrennung in einen String konvertiert (da man bei InternetAddress auch mehrere Adressen mit kommatrennung angeben kann). Hier habe ich aber jetzt das Problem, dass er ganz hinten auch ein Komma in den String schreibt und ich echt nicht weiss, wie ich das letzte Zeichen in einem String löschen kann... hab schon so Sachen wie

result.length()-1;
versucht, bisher hat aber nichts funktioniert...
Ich bin seit heute morgen am rumbasteln und bekomme das einfach nicht hin.

Hat jemand zufällig einen kleinen Code-Schnipsel auf Lager, mit dem ich das letzte Zeichen einfach löschen kann?

Der String, in dem alles steht heisst bei mir result. Wäre echt nice, wenn jemand helfen könnte, damit ich dann etwas weiter komme in meinem Programm...

danke im vorraus
 
Zuletzt bearbeitet:
wie es in java geht weiß ich nicht, aber normalerweise hat jeder string eine substring methode, womit du einen teilstring des eigentlichen strings bekommst.

Code:
result = result.SubString( 0, result.length() - 1 );

irgendeine derartige methode wird es in java wohl auch geben.

btw: anstatt den ganzen tag damit zu verbringen das letzte zeichen herauszutrennen, hättest du dir einfach eine kopierfunktion schreiben können, die dir von zeichen x bis y des strings z einen neuen string zurückgibt. ;)
 
Ahhhhh...vielen Dank. So ähnlich hatte ich es schon probiert, aber irgendwo hatte ich da einen Fehler drin...

jedenfalls funktioniert es jetzt...

String a = result;
String b;

b = a.substring(0, a.length()-1);


da mussten nur noch die Klammern hinter das length

Vielen Danke für die schnelle und effektive Hilfe!!!
 
StringTokenizer tok = new StringTokenizer(input,",");
while (tok.hasMoreTokens()) {
String mail = tok.nextToken();
}

Der Tokenizer trennt den input String bei jedem Komma (nicht enthalten in Tokens) somit kannst du die Adressen einfach auslesen.
 
du könntest ggf. auch deinen code ändern, dass er beim letzten durchlauf kein komma mehr hinten dran hängt ... sicher performanter als substring, was natürlich die lösung für dein problem ist!
 
Das ist auch noch eine Möglichkeit!

String result = "test";
StringBuffer xString = new StringBuffer(result);
xString.deleteCharAt( xString.length()-1 );
xString.toString();
 
Müsste es nich heissen:

Code:
String result = "test";
StringBuffer xString = new StringBuffer(result);
xString.deleteCharAt(xString.length()-1);
[COLOR="Red"]result = [/COLOR]xString.toString();
?

toString() gibt doch immer ein String-Objekt als Rückgabe, oder?
 
Gerex @ Ja tut sie.
Aber die Lösung ist den Aufwand nicht so richtig wert.
Die Lösung mit *.substring(first, last) ist schon am sinnigsten ;)
 
Ich würd sagen, die Lösung mit .substring(first, last) ist am einfachsten. Am sinnigsten ist wohl, wie schon oben erwähnt, das Komma gar nicht erst in den String zu schreiben.
Das die Frickelei mit StringBuffer den Aufwand nicht wert ist, ist klar, mir gings eher ums Prinzip ;)
 
Zurück
Oben