1

ID、緯度、経度、参照名、ユーザー ID、ユーザー名を含むパイプ区切りの文字列があります。

1390|-32.5506782531738|18.9797592163086|Hardie - Vrede 4|21|Hardie van der Merwe
1391|-33.5143165588379|18.422327041626|test|3|sgroenewald
1392||||3|sgroenewald

StringTokenizer クラスを使用してこれらの各行を読み取ると、空の値がある 3 行目に到達するまで機能します。ID を正常に読み取った後、true を返す hasMoreTokens() をチェックしますが、空白をスキップして最後から 2 番目のフィールドに移動します。

続けて、経度であると予想して、nextToken を使用して次のフィールドを読み取りますが、文字列が返され (sgroenewald)、車輪が外れます..

読み取る前に、次のトークンが空白かどうかを確認する方法はありますか?

4

2 に答える 2

1

として指定して、3 つのパラメーターで StringTokenizer のコンストラクターを使用してみてください。もちろん、トークナイザーを循環させている間は、値自体から区切り文字を手動で削除する必要があります。returnDelimiterstrue

于 2012-09-20T13:40:23.870 に答える
0

できることの 1 つは、文字列クラスの replace() メソッドを使用して、これらの空白をスペースなし ( " " で "" ) に置き換えることです。

String finalStr = "1390|-32.5506782531738|18.9797592163086|Hardie - Vrede 4|21|Hardie van der Merwe";

finalStr = finalStr.replaceAll( " ", "" );
于 2012-09-20T13:32:45.207 に答える