私は区切り文字としてタブ(/ t)を使用していますスキップし、私は私のデータなどでいくつかの空のフィールドがあります知っている:のJava StringTokenizer.nextTokenは()空のフィールド
one->two->->three
- >タブに等しいが、 。あなたが見ることができるように、空のフィールドはまだタブによって正しく囲まれています。 データは、ループを使用して収集されます。
while ((strLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(strLine, "\t");
String test = st.nextToken();
...
}
はまだJavaは、この「空の文字列」を無視し、フィールドをスキップします。
この動作を回避し、空のフィールドで読み込むように強制する方法はありますか?
使用 'のstring.Split(「\ tを」)'。 –
StringTokenizerのJavaドキュメントから "StringTokenizerは、互換性の理由から保持されているレガシークラスですが、新しいコードで使用することはお勧めしません。この機能を求める人は、Stringのsplitメソッドまたはjava.util.regex代わりにパッケージ。 " – Inquisitive
'string.split(" \ t ")'のように見えるだけで、後ろに空のトークンは返されません。それが重要であれば 'string.split(" \ t "、-1)'を使います。 – Oded