如何在CSV文件中转义逗号,Android

3

我有一个CSV文件(如果有影响,其中的信息是用西里尔字母编写的)。CSV类的编写方式是读取每一行并在逗号上进行拆分:

String[] row = csvLine.split(",");

在csv中,我有以下格式的行:

ааа,бб, рр, ррр рр тт.

我该如何强制CSV只在第一个逗号处分割? 附注:我已经尝试使用双逗号和斜杠来转义逗号,但目前还没有成功。 编辑: 以下是整个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中提取上述摘录,仅在第一个逗号处进行拆分,并解析并显示其后遇到的内容。

你能给我一个链接到csv类的吗? - Shubhank
请您能否发布您的输入和输出,以及您期望的输出是什么。 - rakesh kashyap
是的,该行被解析和读取了。问题在于它也被强制在第二个逗号处分割。 - VyaraG
我已经添加了更多的代码,希望能有所帮助。 - VyaraG
你可以在读取所有行后调用split方法,而不是在每一行上分割它。 - Shubhank
1个回答

2

如果您只想分割每行中的第一个逗号,可以使用

csvLine.split(",",2);

其中 2limit 参数,检查结果 String 数组的最大长度。这意味着拆分仅会发生 limit-1 次。在您的情况下,是 1

正如 JavaDocs 这里 所解释的那样。

对于输入 aa,bb,cc,dd,您将得到数组 {"aa","bb,cc,dd"}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接