验证并替换 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