パッケージ org.opengion.fukurou.util

# クラス CSVTokenizer

java.lang.Object
org.opengion.fukurou.util.CSVTokenizer

すべての実装されたインタフェース:
  `Iterator<String>`

public class CSVTokenizer extends Object implements Iterator<String>
CSVTokenizer は、CSVファイルのデータを順次分割する StringTokenizer と非常に 良く似たクラスです。 StringTokenizer では、デリミタが連続する場合も、１つのデリミタとするため、 データが存在しない場合の表現が出来ませんでした。(例えば、AA,BB,,DD など) 現在では、StringTokenizerの代わりに、String#split(String)が推奨されており、 これなら、区切り文字を正規表現で指定できるため、両方の形式に対応できます。 ただし、ダブルクオート等で囲われたデータを塊として処理することが出来ません。 ( AA,BB,"cc,dd",EE などを、「AA」「BB」「cc,dd」「EE」に分割したい、など) この、CSVTokenizer クラスでは、データが存在しない場合もトークンとして返します。 また、ダブルコーテーション("")で囲まれた範囲のデリミタは無視します。 ("") は、２重にすることで、エスケープできます。これにより、改行コードで分割した １行の中に、("")が奇数の場合は、次の行は、続いていると判定できます。 ただし、デリミタとしては、文字列は指定できず、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 のインスタンスを作成する。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `int`
  `countTokens()`
  例外を生成せずにトークナイザの `next()` メソッドを呼び出せる 回数を計算します。
  `boolean`
  `hasNext()`
  トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。
  `String`
  `next()`
  文字列トークナイザから次のトークンを返します。
  `String`
  `toString()`
  インスタンスの文字列表現を返す。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

  ### インタフェースから継承されたメソッド java.util.Iterator

  `forEachRemaining, remove`

- ## コンストラクタの詳細

  - ### CSVTokenizer

    public CSVTokenizer(String str, char delim, boolean inQuote)
    CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。
    パラメータ:
      `str` - CSV形式の文字列 改行コードを含まない。
      `delim` - 区切り文字(１文字のみ指定可)
      `inQuote` - クオート処理を行うかどうか [true:行う/false:行わない]

  - ### CSVTokenizer

    public CSVTokenizer(String str, char delim)
    CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。 inQuote=true を初期値設定されます。
    パラメータ:
      `str` - CSV形式の文字列 改行コードを含まない。
      `delim` - 区切り文字(１文字のみ指定可)
    変更履歴:
      6.4.5.1 (2016/04/28) Iteratorインタフェース化。

  - ### CSVTokenizer

    public CSVTokenizer(String str)
    CSV形式の 文字列を解析する CSVTokenizer のインスタンスを作成する。 delim=',' , inQuote=true を初期値設定されます。
    パラメータ:
      `str` - CSV形式の文字列 改行コードを含まない。

- ## メソッドの詳細

  - ### hasNext

    public boolean hasNext()
    トークナイザの文字列で利用できるトークンがまだあるかどうかを判定します。 このメソッドが true を返す場合、それ以降の引数のない next() への 呼び出しは適切にトークンを返します。
    定義:
      `hasNext` インタフェース内 `Iterator<String>`
    戻り値:
      文字列内の現在の位置の後ろに 1 つ以上のトークンがある場合だけ true、そうでない場合は false
    変更履歴:
      6.4.5.1 (2016/04/28) Iteratorインタフェース化。

  - ### next

    public String next()
    文字列トークナイザから次のトークンを返します。
    定義:
      `next` インタフェース内 `Iterator<String>`
    戻り値:
      文字列トークナイザからの次のトークン
    例外:
      `NoSuchElementException` - トークナイザの文字列にトークンが残っていない場合
    変更履歴:
      5.2.0.0 (2010/09/01) トークンの前後が '"'である場合、"で囲われた文字列中の""は"に変換します。, 6.4.5.1 (2016/04/28) Iteratorインタフェース化。

  - ### countTokens

    public int countTokens()
    例外を生成せずにトークナイザの `next()` メソッドを呼び出せる 回数を計算します。現在の位置は進みません。
    戻り値:
      現在の区切り文字を適用したときに文字列に残っているトークンの数
    関連項目:
      - `next()`

  - ### toString

    public String toString()
    インスタンスの文字列表現を返す。
    オーバーライド:
      `toString` クラス内 `Object`
    戻り値:
      インスタンスの文字列表現。
    このﾒｿｯﾄﾞは、nullを返しません