Padding and Masking in Groovy vs Java.
Example with zero padding:
JAVA:
public static String addPreceedingZeros(String str, int len)
{
if (str == null)
{
return null;
}
StringBuilder buf = new StringBuilder(str);
while (buf.length() < len)
{
buf.insert(0, "0");
}
return buf.toString();
}
GROOVY:
def str = '5';
str = str.padLeft(5,'0')
Example with credit card mask:
JAVA:
public static String maskCardNumber(String cardNumber, String mask) {
// format the number
int index = 0;
StringBuilder maskedNumber = new StringBuilder();
for (int i = 0; i < mask.length(); i++) {
char c = mask.charAt(i);
if (c == '#') {
maskedNumber.append(cardNumber.charAt(index));
index++;
} else if (c == 'x') {
maskedNumber.append(c);
index++;
} else {
maskedNumber.append(c);
}
}
// return the masked number
return maskedNumber.toString();
}
println maskCardNumber("1234123412341234", "*************####")
GROOVY:
def card_number = "1234123412341234"
card_number.replaceFirst('.*(?=.{4})', { match ->; return "".padLeft(match.length(), '*')});