我使用 EditText
作为主要的记事本输入区域,我希望用户能够简单地单击一个按钮并将他们的笔记变成项目符号列表(添加项目符号和每行文本前的几个空格)。
我已经找到了一些可行的方法,但我的主要问题是,如果用户有一个双换行符(注释中的一个空行),它会在空行中添加一个项目符号点。
我尝试将 Matcher
和 Pattern
与正则表达式一起使用,但无法弄清楚如何避免将项目符号点添加到已创建的一组空白行中文本。
这是将项目符号点添加到除注释标题之外的每一行的代码。
//Place text into an array containing the lines.
String[] lines = noteText.split("\n");
for (int i = 0; i < lines.length; i++) {
//The note title. Don't add a bullet point
if(i == 0) {
pad.setText(lines[i]);
} else {
pad.append("\n" + "\u2022" + " " + lines[i]);
}
}
最佳答案
为什么不检查每一行,看看它是空的还是只有白色的文本?
String[] lines = noteText.split("\n");
for (int i = 0; i < lines.length; i++) {
//The note title. Don't add a bullet point
if(i == 0) {
pad.setText(lines[i]);
} else if (TextUtils.isEmpty(lines[i].trim()) {
pad.setText(lines[i]);
} else {
pad.append("\n" + "\u2022" + " " + lines[i]);
}
}
此外,最好在循环外而不是在循环内处理 i=0 的情况。否则,您将在不必要的每次迭代中执行零检查。
关于java - Android:在编辑文本中创建项目符号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562333/