gpt4 book ai didi

Java使用子字符串函数中的索引替换两个字符之间的字符串中的字符

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

我在字符串中有一个这样的日期:10-10-2018,我想显示为 10-Oct-2018,我正在执行以下操作:

String date = "10-10-2018";
String newDate = date.replace(date.subString(date.indexOf("-")+1,date.lastIndexOf("-")),"October");

我得到的不是 10-October-2018,而是 October-October-2018,为什么两个 10 的实例都被替换了,尽管我选择了“-”符号之间的中间一个。我错过了什么。

最佳答案

简单的问题是您要替换字符串 "10""October"在存在相同子字符串的其他实例的字符串中。

你的调用相当于:

date.replace("10", "October");

它将替换第一个实例 "10"也。 String.replace的文档包含以下内容:

Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence. The replacement proceeds from the beginning of the string to the end, for example, replacing "aa" with "b" in the string "aaa" will result in "ba" rather than "ab".

更可靠的方法是使用日期/时间 API 来解析和格式化您的日期:

String date = "10-10-2018";
LocalDate d = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
String newDate = d.format(DateTimeFormatter.ofPattern("dd-MMMM-yyyy"));

newDate评估为 "10-October-2018"正如预期的那样。

关于Java使用子字符串函数中的索引替换两个字符之间的字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116650/

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