0

これは少し奇妙に思えるかもしれませんが、非常に単純な方法で、文字列とその長さをログに記録する次のコードがあります。

log.v("something", myString + " -- " + myString.length);

そして非常に奇妙なことに、プログラムの実行時にログビューに表示されるのは次のとおりです。

.1.29 -- 9

私の文字列にはここに9つの要素がないと確信しています。

私の完全な文字列は、いくつかの奇妙な文字を含むシリアルBluetoothデバイスからロードされると言わざるを得ませんが、関数を介してそれらをバイパスするようにしますが、ここにあるようにすべてをフィルタリングすることはできません.

文字列変数でこの矛盾が見られるのはなぜですか? そして、どうすればそれを予測できますか

4

4 に答える 4

0

文字列の長さは9あなたの場合です。2 つの文字列を連結してから、その長さを書きます。log.v("something", myString + " -- " + myString.length);どこでmyString+' -- 'の長さがmyString.length()+ 4あるので、.1.29どの長さが で5' -- 'どの長さが 4 で、それは9

于 2013-11-01T14:50:47.410 に答える
0

考えられるエラー:

  1. 何が入っているかを指定しませんでしたmyString(少なくとも上記のコードでは)。
  2. 持っていますmyStringが、長さは からmStringです。

これらは、エラーの考えられる原因である可能性があります。

于 2013-09-12T02:34:33.600 に答える
0

何らかの理由でロガーに出力されていない文字があると思われます。これを試して:

  for(int i=0; i<myString.length();i++)
  {
     log.v("something", "character number " + i + ": " + myString.charAt(i));
  }
于 2013-11-01T15:15:55.077 に答える
0

可能性のある空白を削除しようとしましたか?

  myString.trim().length
于 2013-11-01T15:05:00.613 に答える