验证并替换 id 以匹配 java 中的模式?
Verify and replace id to match a pattern in 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;
}
您可以尝试以下解决方案:
private static String formatStoreNumber(String storeNumber) {
String strWithoutS = storeNumber.replaceAll("S", "");
String result = "S" + ("00000" + strWithoutS).substring(strWithoutS.length());
return result;
}
以下是输入和相应的输出:
Input : S14666| Output : S14666
Input : 1 | Output : S00001
Input : 12 | Output : S00012
Input : 123 | Output : S00123
Input : 1234 | Output : S01234
Input : 12345 | Output : S12345
我有一个要求,我得到的字符串开头可能包含也可能不包含 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;
}
您可以尝试以下解决方案:
private static String formatStoreNumber(String storeNumber) {
String strWithoutS = storeNumber.replaceAll("S", "");
String result = "S" + ("00000" + strWithoutS).substring(strWithoutS.length());
return result;
}
以下是输入和相应的输出:
Input : S14666| Output : S14666
Input : 1 | Output : S00001
Input : 12 | Output : S00012
Input : 123 | Output : S00123
Input : 1234 | Output : S01234
Input : 12345 | Output : S12345