【发布时间】:2020-08-11 11:02:53
【问题描述】:
我有一个函数,我需要将字符串设置为以下格式:#####-####-## 并用前导零填充。
例如:
1234567 将变为 00001-2345-67
98765432109 将变为 98765-4321-09
我正在使用MaskFormatter,我从文档中得到的印象是A 代表任何字母或数字,而setPlaceHolderCharacter 将填充字符串。
我知道从技术上讲它是用于文本字段的,但我希望我可以在后端功能中使用它,如果没有,我应该使用其他组件吗?
我在下面有这段代码,但是当它遇到mask.valueToString(ndc) 时会抛出异常java.text.ParseException: Invalid character: 1
public class NdcFormatter implements MapFunction<Purchase, Purchase> {
private final String maskFormat = "AAAAA-AAAA-AA";
private final Character placeholder = '0';
@Override
public Purchase map(Purchase purchase) throws ParseException {
if(purchase != null){
String ndc = purchase.getNdc();
MaskFormatter mask = new MaskFormatter(maskFormat);
mask.setPlaceholderCharacter(placeholder);
String result = mask.valueToString(ndc);
purchase.setNdc(result);
}
return purchase;
}
}
【问题讨论】:
标签: java intellij-idea maskformatter