知识的价值不在于占有,而在于使用。这篇文章主要讲述解析纯文本并在android中生成csv相关的知识,希望能为你提供帮助。
【解析纯文本并在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
推荐阅读
- VS 2010 post build,show application console
- 自定义ConstraintLayout类似乎无法横向排列 - Android - Kotlin
- 如何隐藏或删除Apple Watch状态栏中的时间()
- 使用addButton时,AppJar已按下所有按钮
- 在Recycler视图上添加图像视图时,Android导航抽屉动画滞后/减速
- Matlab - AppDesigner(使用GUI中断循环)
- 使用循环或lapply来读取和命名文件
- 如何从Delphi Android应用程序启动视频通话()
- R(试图理解逻辑以用lapply()替换循环)