gpt4 book ai didi

java - 获取由 xCharsxInts 组成的字符串的子字符串

转载 作者:行者123 更新时间:2023-11-30 06:59:22 26 4
gpt4 key购买 nike

我有一个常量列表:

public static final String INSTANCE_PREFIX = "in";
public static final String INDICATOR_PREFIX = "i";
public static final String MODEL_PREFIX = "m";
...

它们的长度是可变的,放在数字前面,结果是变量的 id。例如,它可以是 in30i2m4353。我试图使该方法尽可能抽象以说明 x 字母 x 数字。这些字母总是会成为我的 Constants.java 中的一些前缀,所以我知道很多,但该方法不知道它使用的是哪种组合。

我只想要最后附上的数字。例如,我想从上面传入 m4353,然后返回 4353。它是否使用常量文件无关紧要,但我将它们包括在内,因为它们可能对某些方法有用。

最佳答案

在我看来你根本不关心前缀,所以我在这个答案中忽略了它们。如果您确实关心前缀,请向下滚动到此答案的后半部分:

此代码使用正则表达式提取字符串末尾的尾随数字。

  • ()代表一个捕获组(被m.group(1)使用);
  • [0-9]+表示一串长度至少为1的数字
  • $代表字符串的结尾,保证数字只是最后的数字。

代码如下:

private static final Pattern p = Pattern.compile("([0-9]+)$");

public static int extractNumber(String value) {
Matcher m = p.matcher(value);
if(m.find()) {
return Integer.parseInt(m.group(1));
} else {
return Integer.MIN_VALUE; // error code
}
}

Demo.


如果要捕获前缀,可以改用 Pattern.compile("^([a-z]+)([0-9]+)$

请注意,数字现在是第二组,因此它们将在 m.group(2) 中捕获,而前缀将在 m.group(1)< 中捕获.

关于java - 获取由 xCharsxInts 组成的字符串的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614825/

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