gpt4 book ai didi

java - 仅当字符串中包含多个年份时才拆分字符串并创建自定义字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:09:03 26 4
gpt4 key购买 nike

我有一个以下格式的字符串:

[string1][string2][string3][string4][string5][string6]

其中第一个字符串 string1 将始终为 Year 并且格式为 YYYY 因此示例为:

[2010][Toyota][ALL][Hatchback][998ccm 68HP 50KW]

现在在某些情况下,string1 以这种格式出现 2010^K2011^K2012^K2013^K2014^K2015^K2016^K2017 其中每年由^K 分隔符。示例示例:

[2010^K2011^K2012^K2013^K2014^K2015^K2016^K2017][Toyota][ALL][Hatchback][998ccm 68HP 50KW]

现在每当我看到上述格式的字符串时,我都必须解析年份字符串并在分隔符上拆分并提取每个单独的年份,然后按照以下格式制作字符串列表:

[2010][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2011][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2012][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2013][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2014][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2015][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2016][Toyota][ALL][Hatchback][998ccm 68HP 50KW]
[2017][Toyota][ALL][Hatchback][998ccm 68HP 50KW]

所以我可以想到以下情况:

  • 如果年份字符串只有一年,那么我将按原样使用它,不进行任何拆分。
  • 如果年份字符串中有多个年份并由一些分隔符分隔,那么我将拆分那一年并相应地制作字符串列表,如上所示。
  • 如果由于某种原因该年份字符串中没有年份,那么我将按原样使用该字符串,不进行任何拆分或任何操作。

这可能吗?我知道如何在特殊字符 ^ 上拆分字符串,但混淆是如何提取 string1 并检查它是否有多年(如果是则拆分)或它只有一年,或者它还有其他东西。

  public static void main(String[] args) {
// String myString =
// "[2010^K2011^K2012^K2013^K2014^K2015^K2016^K2017][Toyota][ALL][Hatchback][998ccm 68HP 50KW]";
String myString = "[2010][Toyota][ALL][Hatchback][998ccm 68HP 50KW]";

}

最佳答案

我想到了这个方法:

public static String[] splitYears(String str) {
// get the year part of the string using a regex
Matcher m = Pattern.compile("^\\[([\\d^K]+)\\]").matcher(str);
if(m.find()) {
String yearPart = m.group(1);
// separate the other parts. The + 2 here is to account for the two square brackets in the yearPart
String otherParts = str.substring(yearPart.length() + 2);
// split by ^K
String[] years = yearPart.split("\\^K");
// Construct a new string for each year
String[] newYears = new String[years.length];
for (int i = 0; i < years.length; i++) {
newYears[i] = String.format("[%s]%s", years[i], otherParts);
}
return newYears;
} else {
return new String[] {str};
}
}

用法:

System.out.println(Arrays.toString(splitYears("[2010^K2011^K2012^K2013^K2014^K2015^K2016^K2017][Toyota][ALL][Hatchback][998ccm 68HP 50KW]")));

关于java - 仅当字符串中包含多个年份时才拆分字符串并创建自定义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48899608/

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