csv文件如下所示
我试图得到像name这样的字段值,它是$$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”,我需要匹配数据库中的列类别必须是5,存储在字符串中,才能插入到同名的数据库列中。当我使用line.matches条件时,正则表达式找不到完全匹配
3条答案
按热度按时间yws3nbqq1#
您可以在此处使用regex来检测名称行:
sr4lhrrt2#
我建议您首先按空格分割行,然后生成类似$$name$$,john的内容。然后取回美元符号之间的钥匙。
基于您的代码片段的示例:
您还可以使用更现代的方法,使用java 9文件api和流,下面是一个示例:
qvtsj1bj3#
下面的代码将只读取文件的前100行,并将值提取到列表中。
根据问题中的示例文件,上面的代码将创建以下列表。
如果你想要Map而不是Map
List
在哪里Map
键之间的值$
人物与角色Map
值是空格后的部分,然后这将创建以下内容
Map
```{GROUP=CATEGORY, WEATHER=, CITY=SF, STATE=CA, TIME=, NAME=JOHN, REGION=XYZ, AGE=25}