gpt4 book ai didi

java - 检查中间字符串是否以某种模式开始和结束并更新该字符串

转载 作者:行者123 更新时间:2023-11-30 05:25:53 25 4
gpt4 key购买 nike

如果我有一个像这样的字符串:
<强> String str = "startDate:23/04/2016;endDate:;renewDate;"

需要对字符串进行多次操作。我需要获取一个字符串并使用分隔符(";")提取不同的子字符串,然后再次使用分隔符提取不同的子字符串以形成键值(“:”)。如果针对键,它们没有值,则显示具有 diff-diff 默认值的更新,例如(“01/01/2000”,“01/01/1900”,因为两者都是日期类型)。< br/>
如果您注意到 renewDate 字段没有分隔符 (":") 在这种情况下,我们需要附加分隔符以及默认值 (:01/01/1900) 这样我的预期结果将是这样的:
<强> String str = "startDate:23/04/2016;endDate:01/01/2000;renewDate:01/01/1900;"

我尝试了下面的正则表达式,但它不适用于所有场景:

String regExpression = "(?<=\\bendDate:)[;]+"
str = str.replaceAll(regExpression , "01/01/2000");

任何人都可以指导我如何使用正则表达式获得结果。谢谢!!!!!!

最佳答案

正如 Tim 所说,我们可以使用正则表达式模式来替换该值。添加到他的答案中,我建议的唯一更改是在用于文本中的 renewDate 和 endDate 的模式中添加冒号(:) 作为可选。

    String endDate = "01/01/2000";
String renewDate = "01/01/1900";
String str = "startDate:23/04/2016;endDate:;renewDate;";
str = str.replaceAll(";endDate:?;", ";endDate:"+endDate+";");
str = str.replaceAll(";renewDate:?;", ";renewDate:"+renewDate+";");
System.out.println(str);

这将给出如下输出

startDate:23/04/2016;endDate:01/01/2000;renewDate:01/01/1900;

关于java - 检查中间字符串是否以某种模式开始和结束并更新该字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com