防止特定字符串分裂

  • 本文关键字:字符串 分裂 java
  • 更新时间 :
  • 英文 :


我想拆分这些字符串,除了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
]

最新更新