字符串格式验证并替换id以匹配java中的模式?
我有一个要求,我得到一个字符串,它的开头可能包含也可能不包含s
,然后是数字,可以是1到5位。现在,这个字符串需要类似于s
和5位数字(它不能包含另一个字母),如下所示:
s1 -> s00001
s12 -> s00012
s123 -> s00123
s1234 -> s01234
s12345 -> s12345
因为s可能会出现,也可能不会出现,所以在添加前导零之前,我也需要检查它。
这是我到目前为止得到的结果,但是否有更好的解决方案(可能是使用常规表达式)
private String formatStoreNumber(String storeNumber) {
if(storeNumber.contains("s")) {
storeNumber = storeNumber.replace("s", "");
}
storeNumber = StringUtils.leftPad(storeNumber, 5, '0');
storeNumber = "s" + storeNumber;
return storeNumber;
}
# 1 楼答案
您可以尝试以下解决方案:
以下是输入和各自的输出: