String h;
h=(String) Tok.nextElement();
System.out.println("" + ++n +": "+h);
h.trim();
System.out.println("The length of h :"+n+h.length());
wordlist[now]=h;
System.out.println("Now length is"+wordlist[now].length());
这个“\ u0B9A \ u0BBF \ u0BAF \ u0BA9”是分配给h的字符串。输出是
h的长度:128
现在长度为41
我完全糊涂了:(请帮忙。抱歉.pblm不是运营商,但长度也注意h的长度是128 !!其中实际长度是28
答案 0 :(得分:5)
wordlist[now++]=h
将h
分配给wordlist[now]
,然后增加now
,之后wordlist[now]
最有可能 h
(除非之前已有)。
您可能希望改用wordlist[++now]=h
。更好的是,避免在语句中使用递增器。
答案 1 :(得分:2)
我认为这是你的String concat的问题。
System.out.println("The length of h :"+n+h.length());
h的长度实际为28.但是之前你把var “n”放在那里,我认为n的值是1。
由于你用String连接,而不是sum n和h,它将只连接n和h为String 。
所以n + h.length =“1”+“28”=“128”
换句话说,请将您的语法更改为:
System.out.println("The length of h :"+h.length());
我也想评论这种语法:
h.trim();
拥有此语法的目的是什么?如果要修改变量h,则应将其分配给var h。
h=h.trim();
答案 2 :(得分:1)
这种差异源于您使用now++
语句的位置/方式。
首先,您将获得位于wordlist[now]
(预增量)的字符串的长度,并且在后续语句中,您将获得字符串的长度wordlist[now+1]
(后增量)。