2010-05-30 3 views

Répondre

27

Vous devriez nous donnez le code qui illustre le problème, mais je pense que tu as fait quelque chose comme ceci:

String str = "22 "; 
str.trim(); 
System.out.println(str.length()); 

Mais str.trim() ne change pas str (comme des chaînes sont immuables). Au lieu de cela, il renvoie une nouvelle chaîne tronquée. Donc, vous avez besoin de quelque chose comme ceci:

String str = "22 "; 
str = str.trim(); 
System.out.println(str.length()); 
+4

yup thats it, wow vous les gars sont rapides O_o – Jan

+7

5 minutes de temps de réponse?!?! Allez les gars, on peut faire mieux que ça ...;) –

11

Essayez ceci:

System.out.println(java.util.Arrays.toString(theString.toCharArray())); 

Cette dumps la version char[] du String, donc on peut peut-être voir si elle contient quelque chose de drôle.

+5

+1 C'est un bon outil de diagnostic même s'il n'était pas nécessaire cette fois-ci. –

+0

N'avait même pas le même problème est OP mais cela a vraiment aidé à comprendre que la chaîne utilisait des codes d'échappement ANSI. +1 –

-2

depuis que je trouve une raison tout en formulant la question, im va me répondre ..

Si la chaîne a été créé par .Substring ou fendu, la chaîne entière est enregistrée plus la position et la longueur de la sous-chaîne.

ce apparemment cant être coupé (était « 22 »)

+3

'longueur()' ne retourne pas la longueur du tableau de sauvegarde, et il devrait pouvoir être rogné. Vois ma réponse. –

+0

faux, il peut, voir la réponse ci-dessus – Jan

Questions connexes