【发布时间】:2021-01-02 19:24:26
【问题描述】:
我正在构建一个 Android 应用程序,我想从 CSV 文件中读取数据并将其显示在一些 Textviews 中。最后一列可以包含较大的文本,其中包含换行符。
我正在读取到字符串数组的示例 CSV 行:
Cat1; Cat2; Sample Text\nwith a line break
将字符串设置为textview的文本后,我会在设备/模拟器上得到这个:
示例文本\n带换行符
如果我直接这样设置字符串:
textView.setText("Sample Text\nwith a line break");
或者,如果我像这样更换不同的占位符:
(CSV 中的字符串:带有换行符的示例 Textzzz)
textView.setText(someArray[2].replace("zzz", "\n"));
它会给我想要的结果:
示例文本
有一个换行符
我也试过 .replace("\n", "\n") 但这也没有帮助。
我究竟做错了什么?这可能是一些基本的东西。
我自己提供了 CSV,所以我也可以更改其中的内容。
提前致谢。
编辑1: 这就是我将 CSV 读取到字符串数组的方式
int choosenfile = getResources().getIdentifier("test", "raw", getPackageName());
InputStream is = getResources().openRawResource(choosenfile);
BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
String line = "";
try{
while ((line = reader.readLine()) != null) {
String[] tokens = line.split(";", -1);
someArray[0] = tokens[0];
someArray[1] = tokens[1];
someArray[2] = tokens[2];
}
} catch (IOException e1) {
Log.e("MainActivity", "Error" + line, e1);
e1.printStackTrace();
}
【问题讨论】:
-
您的 CSV 文件是否包含 \ 字符后跟
n字符?您可能需要编辑文件以用换行符替换它,并确保正确引用它,以便换行符不会开始新的 CSV 行。或者使用.replace("\\n", "\n")将这对字符替换为换行符。 -
在示例中,我在“Text”和“with”之间有 \n。不确定如何或在哪里引用 CSV。我也试过那个 .replace("\\n", "\n") ,没用。
-
row that I'm reading to a string array你只是在展示你是如何从 csv 文件中读取数据的,所以我们无能为力。 -
Cat1; Cat2; Sample Text\nwith a line break这不是 csv 文件的有效内容/行。你至少应该有Cat1;Cat2;"Sample Text\nwith a line break"。 -
@blackapps 我添加了那部分。报价也无济于事。它也只是给了我关于输出的引号
标签: android csv line-breaks