Ich habe die Zeichenfolge "22"
und ich bekomme 3 als Länge;Java: falsche Zeichenfolge.length() erhalten nach der Verwendung von trim()
I verwendet .trim()
Was sonst ein Grund dafür sein könnte?
Ich habe die Zeichenfolge "22"
und ich bekomme 3 als Länge;Java: falsche Zeichenfolge.length() erhalten nach der Verwendung von trim()
I verwendet .trim()
Was sonst ein Grund dafür sein könnte?
Sie sollten uns Code sein zu geben, die das Problem veranschaulicht, aber meine Vermutung ist, dass Sie so etwas wie dies tat:
String str = "22 ";
str.trim();
System.out.println(str.length());
Aber str.trim()
nicht str
ändern (wie Strings unveränderlich sind). Stattdessen gibt es eine neue getrimmte Zeichenfolge zurück. Sie müssen also so etwas wie dieses:
String str = "22 ";
str = str.trim();
System.out.println(str.length());
yup das ist es, wow ihr seid schnell O_o – Jan
5 Minuten Reaktionszeit?!?! Komm schon Jungs, wir können es besser machen ...;) –
Try this:
System.out.println(java.util.Arrays.toString(theString.toCharArray()));
Diese die char[]
Version des String
Dumps, so können wir vielleicht sehen, ob es etwas komisch enthält.
+1 Es ist ein gutes Diagnosewerkzeug, auch wenn es dieses Mal nicht benötigt wurde. –
hatte nicht einmal das gleiche Problem ist OP, aber das half wirklich herauszufinden, dass die Zeichenfolge ANSI-Escape-Codes verwendet. +1 –
da ich einen Grund gefunden, während die Frage zu formulieren, im gonna selbst beantworten ..
Wenn die Zeichenfolge von .substring oder Split erstellt wurde, die gesamte Zeichenkette gespeichert wird plus die Position und Länge der Teilkette.
dies offenbar getrimmt werden kann nicht (war „22“)
'length()' gibt nicht die Länge des Hintergrund-Arrays zurück, und es sollte getrimmt werden können. Siehe meine Antwort. –
falsch, es kann, siehe Antwort oben – Jan
Sie finden uns Ihren Code haben, denn wie gesagt, es ist nicht möglich. – CPerkins