>我有管道分隔的字符串,其中包含id,纬度,经度,refname,userid,用户名:
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,然后我检查了 hasMoreTokens(),它返回 true,但它跳过了空白并转到倒数第二个字段,使用 nextToken 将其读取为 3,但进入了我的代码中的错误变量。
继续,我使用 nextToken 读取下一个字段,期望它是经度,但我得到了一根绳子(sgroenewald)并且轮子脱落了。
有没有办法在读取之前查看下一个令牌是否为空?
尝试使用带有 3 个参数的 StringTokenizer 构造函数,将returnDelimiters
指定为 true
。当然,您需要在循环分词器时手动从值本身中删除分隔符。
做的一件事是,使用字符串类的 replace() 方法将这些空格替换为没有空格 ( " " 与 " )。
字符串 finalStr = "1390|-32.5506782531738|18.9797592163086|哈迪 - 弗里德 4|21|哈迪·范德梅尔韦";
finalStr = finalStr.replaceAll( " ", "" );