我有5位数字的邮政编码,我的邮政编码是9位数字,中间有一个短划线。
问题是5位邮政编码最后有一个短划线,我想只在邮政编码不是9位数字码的情况下删除短划线。
补充说明:所以我有以下格式的邮政编码:##### - 和##### - ####。我想将其更改为#####和##### - ####
答案 0 :(得分:4)
if(zipCode.endsWith("-")) {
// remove '-'
}
答案 1 :(得分:1)
if (postcode.length() == 6)
postcode = postcode.substring(0,5);
答案 2 :(得分:1)
您可以使用此正则表达式:
(?<=^[0-9]{5})(-)(?=$)
工作正则表达式示例:
java代码:
str = str.replaceAll("(?<=^[0-9]{5})(-)(?=$)", "");
答案 3 :(得分:0)
Pattern p1 = Pattern.compile("(\\d{5})-?");
Pattern p2 = Pattern.compile("(\\d{4})-?(\\d{5})");
Matcher matcher = p1.matcher(zipCode);
String parsed;
if (matcher.find()) {
parsed = matcher.group(1);
} else {
matcher = p2.matcher(zipCode);
if (matcher.find()) {
parsed = matcher.group(1) + matcher.group(2);
}
}
答案 4 :(得分:0)
我要做的是:
if(zipcode.matches("\\d{5}-") //if zipcode is five digits (\d{5}) followed by a hyphen (-)...
{
zipcode = zipcode.substring(0, zipcode.length() - 1); //...make zipcode equal itself minus the last character
}
答案 5 :(得分:0)
^([0-9]{5})\-$
例如regex example),09090-
的匹配将是:
0: [0,6] 09090-
1: [0,5] 09090
你可以用火柴替换它
/^([0-9]{5})[\-][0-9]{4}$/ //skip replacement.