Probleme mit String.trin() - Ich raff es nicht

holtiwilan

Mitglied
Ich mache grob folgendes
Code:
String MyDest;
MyDest = sbLine.toString();
MyDest = MyDest.substring(0, (MyDest.indexOf("[")-1));
MyDest = MyDest.trim();

Aber der .trim() scheint nicht zu greifen, da ich immer nocht die Leerzeichen in den String habe.
sbLine ist ein StringBuffer, in dem eine Zeile einer Textdatei steht.

Wo liegt der Fehler? Ich kann mir das verhalten nicht erklären.

Danke

Tim
 
Solltest du alle Leerzeichen entfernen wollen dann kannst du auch

Code:
String anyStringWithoutWhitespace = anyString.replace(' ','');

verwenden.

Gruß

Romsl
 
Hallo,

Ich habe die Funktion trim() wohl auch noch nicht richtig verstanden.
Möchte nur eingehende und ausgehende Leerzeichen abschneiden.
Strings haben aber keine abschließendes Control- oder Steuerzeichen.
trim() zeigt bei mir keinen Effekt.
Muß ich das jetzt wirklich von Hand programmieren?
 
Hallo!

String.trim(String) schneidet alle Whitespaces am Anfang und am Ende des Strings ab und liefert dann eine NEUE geänderte String Instanz zurück...

Java:
String s = " aaa     ";
String shortS = s.trim(); --> shrotS = "aaa" / s-> ist immer noch " aaa     ", da an s selbst nichts geändert wird.
(String ist immutable)

Gruß Tom
 
Hallo!

String.trim(String) schneidet alle Whitespaces am Anfang und am Ende des Strings ab und liefert dann eine NEUE geänderte String Instanz zurück...

Java:
String s = " aaa     ";
String shortS = s.trim(); --> shrotS = "aaa" / s-> ist immer noch " aaa     ", da an s selbst nichts geändert wird.
(String ist immutable)

Gruß Tom

Genau das habe ich ja erwartet aber...

String cleanvalue;
String value = "aaa "; //String kommt bei mir allerdings aus einem Resultset.getString(1)
cleanvalue = value.trim();
System.out.println("CLEANVALUE: <" + cleanvalue + ">" );
--> gibt bei mir
CLEANVALUE: <aaa >

..habe das jetzt erstmal von Hand programmiert. Das funktioniert wenigstens.

public String trimBlank(String cleanColumnvalue) {
int i = cleanColumnvalue.indexOf(" ");
while (true) {
if (i == 0) {
cleanColumnvalue = new String(cleanColumnvalue.substring(1));
i = cleanColumnvalue.indexOf(" ");
} else {break;}
}
i = cleanColumnvalue.lastIndexOf(" ");
while (true) {
if (i == cleanColumnvalue.length() - 1 && i!= -1) {
cleanColumnvalue = new String(cleanColumnvalue.substring(0, i));
i = cleanColumnvalue.lastIndexOf(" ");
} else {break;}
}

return cleanColumnvalue;
}
 
Zurück