基本上我的问题是这样,我需要分析文本,其中,
是定界符,但不应检查" "
引号中的任何内容作为定界符。这是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