我想拆分这些字符串,除了spend:1和其他"spend"s;
我的txt文件:
date : 1
day : monday
spend : 4
date : 2
day : tuesday
spend : 1
我已经检索了这些通过搜索。我给出输入,例如input: 1,它给出
date : 1
day : monday
spend: 2
但是我有问题它也给我这样的输出当我输入像这样例如input: 1
output:
date :1
day : monday
spend:2
spend:1
我写了下面的代码:
for (String token : line.split(":")) { // Splitting each line with ':'
if (!token.trim().equals(" day")) { // Adding token to list conditionally.
list.add(token);
}
}
有什么办法可以防止"花费"被分割吗?我的意思是分割应该发生在日期和日期只在每行
分隔冒号,冒号前加"spend"
:
line.split("(?<!spend)\s*:\s*")
我不确定这是否是你想要的,但是你可以在你的split中使用lookbehind:
String s = "date : 1nday : mondaynspend : 4n";
String[] r = s.split("(?<!spend(\s+)?):");
System.out.println(Arrays.toString(r));
将产生:
[date , 1
day , monday
spend : 4
]