解析纯文本并在android中生成csv

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析纯文本并在android中生成csv相关的知识,希望对你有一定的参考价值。

在我的android项目中,我在下面的edittext字段中输入了一个纯文本,

1. Who is superhero?
a) Spiderman
b) Batman
c) Ironman

等等,多个问题和答案;这个纯文本需要解析,每个值,即;问题,每个单独的答案选择需要更新到csv文件的各个行单元格,如下所示,

任何有关如何实现这一目标的帮助或意见将不胜感激。

答案

只需将文本分成几行,每4行就有一个问题。只需解析每一行并通过用逗号分隔值来创建csv行

private String parse(String text) {
    // create the header line
    StringBuilder csv = new StringBuilder("Sl No,Question,Option A,Option B,Option C");

    // get every line in an array
    String[] array = text.split("
");

    // for every 4 lines
    for(int i=0; i<array.length; i = i+4) {
        String question = array[i];
        String optionA = array[i+1];
        String optionB = array[i+2];
        String optionC = array[i+3];
        String questionNo = question.substring(0, question.indexOf(".")).trim();
        String questionText = question.substring(question.indexOf(".")+1).trim();
        String optionAText = optionA.substring(optionA.indexOf(" ")).trim();
        String optionBText = optionB.substring(optionB.indexOf(" ")).trim();
        String optionCText = optionC.substring(optionC.indexOf(" ")).trim();

        // build the corresponding csv line
        String csvLine = questionNo+","+questionText+","+optionAText+","+optionBText+","+optionCText;
        csv.append("
");
        csv.append(csvLine);
    }
    return csv.toString();
}

假设这个输入文本:

    String text =
            "1. Who is superhero?
" +
            "a) Spiderman
" +
            "b) Batman
" +
            "c) Ironman
" +
            "2. question 2
" +
            "a) answer 1
" +
            "b) answer 2
" +
            "c) answer 3";
    String csv = parse(text);

它返回以下字符串

Sl No,Question,Option A,Option B,Option C
1,Who is superhero?,Spiderman,Batman,Ironman
2,question 2,answer 1,answer 2,answer 3

以上是关于解析纯文本并在android中生成csv的主要内容,如果未能解决你的问题,请参考以下文章

csv表格处理(下)--纯JS解析导入csv

php 从提供的内容中生成摘录。剥离HTML,删除尾随标点符号,并在删除文本时添加“更多”字符串。

在 Android 的 Recycler View 中生成和设置文本视图背景的随机颜色

为什么我不能在此片段中生成唯一对象数组?

枚举 Vim 中的现有文本(从现有文本中生成编号列表)

字符串 CSV解析 表格 逗号分隔值