我有一个格式的一些数据,如需要帮助string.split()
int,int,'string',int,'string'
每串由'包围,我的问题是,某些字符串包含逗号,我怎么能确保字符串。 split()在内部时不分割?
我有一个格式的一些数据,如需要帮助string.split()
int,int,'string',int,'string'
每串由'包围,我的问题是,某些字符串包含逗号,我怎么能确保字符串。 split()在内部时不分割?
你可以使用正则表达式如"/(".*?"|[^",\s]+)(?=\s*,|\s*$)/g"
并使用split()并检查它是否有效?类似这样的:
String str = "int,int,'string',int,'string','string,int'";
String[] arr = str.split("/('.*?'|[^',\\s]+)(?=\\s*,|\\s*$)/g");
for(String string:arr){
System.out.println(string);
}
如果您自己创建数据,则可以使用不同的分隔符作为分隔的分隔符。
或者,您可以使用逗号作为分隔符正常分割,然后遍历数组,并为每个字符串条目计数找到的引号数,并重新组合包含单引号的元素,以数组顺序流动eachother。
为此使用解析器。 String.split()对于这样的任务是一个完全不适用的工具。 – 2013-05-13 09:39:54
http://stackoverflow.com/questions/101100/csv-api-for-java – assylias 2013-05-13 09:40:18
看看[这里](http://stackoverflow.com/questions/1757065/java-splitting-a-comma-separated-string - 但忽略逗号在引号) – Jayamohan 2013-05-13 09:42:38