2012-04-15 8 views
2

基本的に私の問題はこれです。テキストを解析する必要があります。,は区切り文字ですが、" "の引用符では区切り文字を確認しないでください。これはScanner.skipの方法ですか?私はそれ自身をチェックしますが、トークンが2つの間にあるjavaの正規表現パターンを書く方法を理解していません" "。また、有効な,で区切られた、適切なトークンに引用されたテキストを含めることもできます。引用符で囲まれたテキストはインクルードするが無視するようにする

+0

あなたがp CSVファイルを探して、http://sourceforge.net/projects/javacsv/などのCSVライブラリを探します。 – Kennet

答えて

2

私は少し前にこの問題を調査し、十分に速い解決策を見つけられませんでした。

結果として、私が上で動作するオープンソースプロジェクトに(引用符の間に区切り記号を無視する)単純なカスタム文字列スプリッタ組み込ま:

例えば

QuoteAwareStringSplitter.java

public static void main(String[] args) throws IOException 
{ 
    String s = "ads,asdas,das,das, \"ahda,asd,as,d,a\", adsa"; 
    String[] tokens = QuoteAwareStringSplitter.splitLine(s); 
    for (String token : tokens) 
    { 
     System.out.println(token); 
    } 
} 

印刷物:

ads 
asdas 
das 
das 
ahda,asd,as,d,a 
adsa 
+0

これを行う方法がありましたが、これは手動でチャーをチャーにすることを伴わないが、もしそうなら、このような解決策はあまりにも悪くないと思う。 – user1086516

+1

ある時点ではcharでcharでなければなりません。 'QuoteIgnorringStringSplitter'のようなものを使うとコードから抽象化されます。 – DerMike

+1

あなたが選んだライブラリやソリューションは、正規表現ベースのソリューションであっても、その実装の一部として 'char'によって' char'を通して設定されます。それはあなたから隠されるだけです。正規表現は魔法ではありません...編集:@DerMikeは私にそれを打ち明かしました:) – ulmangt

関連する問題