public class CSVTokenizer
extends java.lang.Object
implements java.util.Iterator
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文字 しか指定できません。
コンストラクタと説明 |
---|
CSVTokenizer(java.lang.String str)
CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。
|
CSVTokenizer(java.lang.String str,
char delim)
CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。
|
CSVTokenizer(java.lang.String str,
char delim,
boolean inQuote)
CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。
|
修飾子とタイプ | メソッドと説明 |
---|---|
int |
countTokens()
例外を生成せずにトークナイザの
next() メソッドを呼び出せる
回数を計算します。 |
boolean |
hasNext()
トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。
|
java.lang.String |
next()
文字列トークナイザから次のトークンを返します。
|
java.lang.String |
toString()
インスタンスの文字列表現を返す。
|
public CSVTokenizer(java.lang.String str, char delim, boolean inQuote)
str
- CSV形式の文字列 改行コードを含まない。delim
- 区切り文字(1文字のみ指定可)inQuote
- クオート処理を行うかどうか [true:行う/false:行わない]public CSVTokenizer(java.lang.String str, char delim)
str
- CSV形式の文字列 改行コードを含まない。delim
- 区切り文字(1文字のみ指定可)public CSVTokenizer(java.lang.String str)
str
- CSV形式の文字列 改行コードを含まない。public boolean hasNext()
hasNext
インタフェース内 java.util.Iterator
public java.lang.String next()
next
インタフェース内 java.util.Iterator
java.util.NoSuchElementException
- トークナイザの文字列にトークンが残っていない場合public int countTokens()
next()
メソッドを呼び出せる
回数を計算します。現在の位置は進みません。next()
public java.lang.String toString()
toString
クラス内 java.lang.Object
Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.