我有一个CSV文件(信息是西里尔字母,如果有的话)。编写CSV类,以便它读取每一行并将其拆分为逗号:
String[] row = csvLine.split(",");
在csv中我有以下模式的行:
ааа,бб, рр, ррр рр тт.
如何强制CSV仅在第一个逗号上拆分? PS:我已经尝试使用逗号中的双逗号和黑色标记,到目前为止没有任何成功。 编辑: 以下是整个CSVreader类:
public class CSVReader {
InputStream inputStream;
public CSVReader(InputStream is) {
this.inputStream = is;
}
public List<String[]> read() {
List<String[]> resultList = new ArrayList<String[]>();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
String csvLine;
while((csvLine = reader.readLine()) != null) {
String[] row = csvLine.split(",");
resultList.add(row);
}
} catch(IOException ex) {
throw new RuntimeException("Error in reading CSV file:" + ex);
} finally {
try{
inputStream.close();
} catch(IOException e) {
throw new RuntimeException("Error while closing input stream: " + e);
}
}
return resultList;
}
}
我需要的是上面的CSV摘录仅在第一个逗号上拆分,然后遇到要解析并在屏幕上显示的内容。
谢谢!
答案 0 :(得分:2)
如果您只想拆分每行的第一个逗号,可以使用
csvLine.split(",",2);
其中2
是limit
参数,用于检查生成的String
数组的最大长度。这意味着拆分仅发生limit-1
次。在您的情况下,1
。
如JavaDocs here中所述。
使用输入aa,bb,cc,dd
,您将获得数组{"aa","bb,cc,dd"}