クラス CSVTokenizer
java.lang.Object
org.opengion.fukurou.util.CSVTokenizer
CSVTokenizer は、CSVファイルのデータを順次分割する StringTokenizer と非常に
良く似たクラスです。
StringTokenizer では、デリミタが連続する場合も、1つのデリミタとするため、
データが存在しない場合の表現が出来ませんでした。(例えば、AA,BB,,DD など)
現在では、StringTokenizerの代わりに、String#split(String)が推奨されており、
これなら、区切り文字を正規表現で指定できるため、両方の形式に対応できます。
ただし、ダブルクオート等で囲われたデータを塊として処理することが出来ません。
( AA,BB,"cc,dd",EE などを、「AA」「BB」「cc,dd」「EE」に分割したい、など)
この、CSVTokenizer クラスでは、データが存在しない場合もトークンとして返します。
また、ダブルコーテーション("")で囲まれた範囲のデリミタは無視します。
("") は、2重にすることで、エスケープできます。これにより、改行コードで分割した
1行の中に、("")が奇数の場合は、次の行は、続いていると判定できます。
ただし、デリミタとしては、文字列は指定できず、cher 1文字 しか指定できません。
- 変更履歴:
- 6.4.5.1 (2016/04/28) Iteratorインタフェース化。
- 導入されたバージョン:
- JDK5.0,
-
コンストラクタの概要
コンストラクタコンストラクタ説明CSVTokenizer
(String str) CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。CSVTokenizer
(String str, char delim) CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。CSVTokenizer
(String str, char delim, boolean inQuote) CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。 -
メソッドの概要
クラスから継承されたメソッド java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
インタフェースから継承されたメソッド java.util.Iterator
forEachRemaining, remove
-
コンストラクタの詳細
-
CSVTokenizer
CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。- パラメータ:
str
- CSV形式の文字列 改行コードを含まない。delim
- 区切り文字(1文字のみ指定可)inQuote
- クオート処理を行うかどうか [true:行う/false:行わない]
-
CSVTokenizer
CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。 inQuote=true を初期値設定されます。- パラメータ:
str
- CSV形式の文字列 改行コードを含まない。delim
- 区切り文字(1文字のみ指定可)- 変更履歴:
- 6.4.5.1 (2016/04/28) Iteratorインタフェース化。
-
CSVTokenizer
CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。 delim=',' , inQuote=true を初期値設定されます。- パラメータ:
str
- CSV形式の文字列 改行コードを含まない。
-
-
メソッドの詳細
-
hasNext
トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。 このメソッドが true を返す場合、それ以降の引数のない next() への 呼び出しは適切にトークンを返します。 -
next
文字列トークナイザから次のトークンを返します。- 定義:
next
インタフェース内Iterator<String>
- 戻り値:
- 文字列トークナイザからの次のトークン
- 例外:
NoSuchElementException
- トークナイザの文字列にトークンが残っていない場合- 変更履歴:
- 5.2.0.0 (2010/09/01) トークンの前後が '"'である場合、"で囲われた文字列中の""は"に変換します。, 6.4.5.1 (2016/04/28) Iteratorインタフェース化。
-
countTokens
例外を生成せずにトークナイザのnext()
メソッドを呼び出せる 回数を計算します。現在の位置は進みません。- 戻り値:
- 現在の区切り文字を適用したときに文字列に残っているトークンの数
- 関連項目:
-
toString
インスタンスの文字列表現を返す。
-