我有一個格式的一些數據,如需要幫助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