/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Scanner;
class Ideone
{
{
Scanner input
=new Scanner
(System.
in);
System.
out.
println("Enter a Serial number: "); text=input.nextLine();
if(text.matches("[A-Za-z0-9]+(-[A-Za-z0-9]+){2}")){
System.
out.
println("Serial number "+text
+" verification \nValid"); System.
out.
println("Enter a wildchar character: "); cha=input.nextLine();
text= text.replaceAll("[A-Za-z0-9]", cha);
System.
out.
println("Masked serial: "+text
); } else if(text.matches(".*[^-A-Za-z0-9].*")) {
System.
out.
println("Invalid. Serial should only contain letters, numbers, and dashes(-)"); } else if(text.matches("[A-Za-z0-9]+(-+[A-Za-z0-9]+){2,}")) {
System.
out.
println("Invalid. There should be exactly 2 non-consecutive dashes in the middle. "); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTY2FubmVyIGlucHV0PW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgU3RyaW5nIHRleHQ7CiAgICAgICAgU3RyaW5nIGNoYTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciBhIFNlcmlhbCBudW1iZXI6ICIpOwogICAgICAgIHRleHQ9aW5wdXQubmV4dExpbmUoKTsKCiAgICAgICAgaWYodGV4dC5tYXRjaGVzKCJbQS1aYS16MC05XSsoLVtBLVphLXowLTldKyl7Mn0iKSl7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2VyaWFsIG51bWJlciAiK3RleHQrIiB2ZXJpZmljYXRpb24gXG5WYWxpZCIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVudGVyIGEgd2lsZGNoYXIgY2hhcmFjdGVyOiAiKTsKICAgICAgICAgICAgY2hhPWlucHV0Lm5leHRMaW5lKCk7CiAgICAgICAgICAgIHRleHQ9IHRleHQucmVwbGFjZUFsbCgiW0EtWmEtejAtOV0iLCBjaGEpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1hc2tlZCBzZXJpYWw6ICIrdGV4dCk7CiAgICAgICAgfSBlbHNlIGlmKHRleHQubWF0Y2hlcygiLipbXi1BLVphLXowLTldLioiKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkludmFsaWQuIFNlcmlhbCBzaG91bGQgb25seSBjb250YWluIGxldHRlcnMsIG51bWJlcnMsIGFuZCBkYXNoZXMoLSkiKTsKICAgICAgICB9IGVsc2UgaWYodGV4dC5tYXRjaGVzKCJbQS1aYS16MC05XSsoLStbQS1aYS16MC05XSspezIsfSIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW52YWxpZC4gVGhlcmUgc2hvdWxkIGJlIGV4YWN0bHkgMiBub24tY29uc2VjdXRpdmUgZGFzaGVzIGluIHRoZSBtaWRkbGUuICIpOwogICAgICAgIH0KCX0KfQ==