基本上我的问题是这样,我需要分析文本,其中,是定界符,但不应检查" "引号中的任何内容作为定界符。这是Scanner.skip方法的目的吗?我自己检查一下,但我不明白如何在Java中编写正则表达式模式,其中令牌在两个" "之间。我还想在由有效,分隔的适当令牌中包含所有引用的文本。

最佳答案

我前一段时间已经研究了这个问题,却没有找到足够快的解决方案。

结果,我将一个简单的自定义字符串拆分器(忽略引号之间的定界符)合并到了我从事的开源项目中:

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

07-24 13:09