我有一个格式化的csv文件
<F,Bird,20,10/> < A,Fish,5,11,2/>
我想知道如何分别读取这些值。
我是否必须将整行放到数组中?
我曾考虑过line.split("/>")
,但第一个数据中会有<
,我不想要。
另一方面,如果我只是使用line.split(",")
分隔它,然后相应地分配每个值,中间的值将合并,这样既不起作用。
有没有办法在不使用<>/
符号的情况下首先分隔字符串?
答案 0 :(得分:0)
尝试使用lookbehind ?<=/>
:
String input = "<F,Bird,20,10/> < A,Fish,5,11,2/>";
input = input.replaceAll("\\s+", "");
String[] parts = input.split("(?<=/>)");
for (String part : parts) {
System.out.println(part.replaceAll("[<>/]", ""));
}
请注意,我删除了字符串中的所有空格以使分割更清晰。我们仍然可以尝试用任意空格分割,但这将是更多的工作。从这一点开始,您可以轻松访问每个标记中包含的CSV数据。
<强>输出:强>
F,Bird,20,10
A,Fish,5,11,2
在这里演示:
答案 1 :(得分:0)
您可以在split regexp中使用多个分隔符,如下所示:
String line = "<F,Bird,20,10/> < A,Fish,5,11,2/>";
String[] lines = line.split("<|/> <|/>");
for (String item: lines) {
System.out.println(item);
}
输出(包含所有空格):
F,Bird,20,10
A,Fish,5,11,2