gpt4 book ai didi

java - 用不同的值替换长字符串的一部分

转载 作者:行者123 更新时间:2023-12-03 23:13:53 26 4
gpt4 key购买 nike

我有一个像下面这样的字符串;

String textToShow = "应用程序 [%ApplicationName%]:开始于 [%Date%][%Time%]"

我需要用不同的值替换 [%%] 之间的字符串。

我喜欢下面的内容,但它只适用于第一个,即“ApplicationName”。

private String getTextVariableName(String stringToShow) {
if (stringToShow.contains("[%") && stringToShow.contains("%]")) {
String content[] = notificationText.split("%");
return content[1];
}
return null;
}

private String replaceValue(String stringToShow, String dataToReplace) {
return stringToShow.substring(0, stringToShow.indexOf("["))
+ dataToReplace
+ stringToShow.substring(stringToShow.indexOf("]") + 1, stringToShow.length());
}

public String processText(String stringToShow, String appname) {
String variableName = getTextVariableName(stringToShow);
String processedText = "Invalid";
if (variableName != null) {
switch (variableName.toLowerCase()) {

case "applicationname":
processedText = replaceValue(stringToShow, appname);
break;

case "datetime":
LocalDateTime currentDateTime = LocalDateTime.now();
String formattedCurrentDateTime = currentDateTime
.format(DateTimeFormatter
.ofPattern("yyyy-MM-dd HH:mm:ss"));
processedText = replaceValue(stringToShow,
formattedCurrentDateTime);
break;

case "date":
LocalDate currentDate = LocalDate.now();
String formattedCurrentDate = currentDate
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
processedText = replaceValue(stringToShow,
formattedCurrentDate);
break;

case "time":
LocalTime currentTime = LocalTime.now();
String formattedCurrentTime = currentTime
.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
processedText = replaceValue(notificationText,
formattedCurrentTime);
break;

default:
processedText = "Invalid";
break;
}
}
return processedText;
}

如果出现更多与这些类似的部分,我如何才能使它适用于整个字符串而不将其进一步拆分?

有没有更好的不 split 的方法?

注意:我从数据库中得到这个字符串,所以我不能改变这个字符串。我只需要根据字符串的名称替换 [%%] 之间的部分。比如,如果它是一个日期,它必须被日期替换等等。

最佳答案

关于:

String textToShow = "Appplication [%ApplicationName%]: started at [%Date%][%Time%]"
textToShow = textToShow.replace("[%ApplicationName%]","your new string here");
textToShow = textToShow.replace("[%Date%]","your new date here");
textToShow = textToShow.replace("[%Time%]","your new time here");

更直接、更容易和更少的错误修剪

关于java - 用不同的值替换长字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428122/

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