単語を個々の文字に分割しようとしています。Android String.split( "")が余分な要素を返す
私はString.split( "")とString.split( "|")の両方を試しましたが、単語を分割すると余分な空の要素が作成されています。 例:
word = "word";
int n = word.length();
Log.i("20",Integer.toString(n));
String[] letters = word.split("|");
Log.i("25",Integer.toString(letters.length));
Androidのモニターで、出力は次のとおりです。
07-21 15:50:23.084 5711-5711/com.strizhevskiy.movetester I/20: 4
07-21 15:50:23.085 5711-5711/com.strizhevskiy.movetester I/25: 5
私はTextViewのブロックに個々の文字を入れて、私は実際に余分な空のTextViewを見ることができます。 4.
私はほとんどこれは、メソッドのAndroidの実装では、実際のバグだと思うように誘惑しています:私は私の通常のJavaでこれらのメソッドをテストする場合
は、それが予想される答えを出力します。
で変更あなたはrealllllly単一文字 'String'sの配列ではなく、あなたが希望' char'sの配列を必要とするいくつかの理由があります'word.toCharArray()'を使って取得しますか? – childofsoong
いいえ、私はそれが動作するかどうかを確認しようとすることができます。しかし、それは一般的な方法が異なって働いているように見えるという問題に対処しません。私はすでに別の回避策を見つけましたが、なぜそれが機能しないのかを知りたいのです。 –
これは、Javaバージョン7までの 'String#split'の予想される動作であり、Java 8で変更されました:[なぜJava 8 splitでは、結果配列の先頭で空の文字列が削除されるのですか?](http:// stackoverflow。 com/q/22718744) – Tom