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 ok,然后我检查 hasMoreTokens(),它返回 true,但它跳过空白并转到倒数第二个字段,使用 nextToken 读取为 3,但在我的代码中输入了错误的变量。

继续我使用 nextToken 读取下一个字段,期望它是经度,但我得到一个字符串(sgroenewald)并且轮子脱落..

有没有办法在阅读之前查看下一个令牌是否为空白?

4

2 回答 2

1

尝试使用带有 3 个参数的 StringTokenizer 的构造函数,指定returnDelimiterstrue. 当然,您需要在循环标记器时手动从值本身中删除分隔符。

于 2012-09-20T13:40:23.870 回答
0

您可以做的一件事是,使用 String 类的 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 回答