【发布时间】:2021-03-09 23:47:31
【问题描述】:
我正在尝试获取名称等字段值,它是 $$NAME$$ 之后的值(标识符后面有一个空格)。如何在 Java 中使用 BufferedReader 存储每个字段的值?字段可以是任意行号,不固定位置或格式,如果有特殊字符或遇到空值也会抛出错误。
int n = 100; // Max lines
String line;
try (BufferedReader br = new BufferedReader(new FileReader(str)))
{
while ((line = br.readLine()) != null && i++ < n)
{
br.readLine();
line = br.readLine();
System.out.println(line);
}
}
从 CSV 文件中提取值后,我需要将它们存储在一个字符串变量中,然后使用它为每个列值插入到数据库中
案例 2:对于最后一个字段 $$GROUP$$ CATEGORY,单元格 9 到 11 中的值是“5”,我需要匹配数据库中的列 CATEGORY 必须是 5 存储在一个字符串中被插入到同名的数据库列中。 当我使用 line.matches 条件时,正则表达式不会找到完全匹配
【问题讨论】:
-
为什么需要确定Max lines?字段是否重复,即
$$NAME$$是否多次出现?每一行是否仅包含您在示例中编写的内容,或者文件的每一行中是否还有其他值?$$WEATHER$$之后的文件中是否还有空格?你想如何存储字段值?您想将它们存储在ArrayList之类的数据结构中,还是将它们写入另一个文件或将它们插入数据库? -
字段不重复,我提到最大行只是因为我不想遍历 csv 中的所有行,因为我相信必填字段必须在前 100 行之前位于顶部。每个行只有我提到的值,是的,在 $$WEATHER$$(space) 之后有一个空格,我更喜欢将提取的值存储在一个字符串中,以作为列值插入到数据库表中
标签: java regex string csv talend