我有一个产品编号,希望能够使用掩码格式化。
例如:
String productNumber = "0913014316";
String mask = "XX.XXX.XXX.XXX";
我该如何得到以下输出:
09.13.014.316
?我可以使用
String.format()
吗?或者在Android上使用其他方法?谢谢
StringBuilder out = new StringBuilder();
int j=0;
for (int i = 0; i< mask.lenght ; i++) {
if (mask[i] == 'X') {
out.append(producNumber[j];
j++;
}
else {
out.append('.');
i++;
}
}
return out.toString();
对于其他遇到同样问题的人,这里是完整的解决方案:
public String getMaskedText(String rawText, String mask, char variableChar, char constChar) {
StringBuilder out = new StringBuilder();
for (int i = 0, j = 0; i < mask.length() && j < rawText.length(); i++) {
if (mask.charAt(i) == variableChar) {
out.append(rawText.charAt(j));
j++;
} else {
out.append(constChar);
}
}
return out.toString();
}
你可以像这样使用它:
String result = getMaskedText("123456789", "##-###-###",'#','-');