import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) {
System.out.println(phoneNum("01012345678"));
System.out.println(name("왕효상"));
System.out.println(email("dress07@test.com"));
System.out.println(ip("127.0.0.1"));
}
public static String phoneNum(String str) {
String replaceString = str;
Matcher matcher = Pattern.compile("^(\\d{3})-?(\\d{3,4})-?(\\d{4})$").matcher(str);
if(matcher.matches()) {
replaceString = "";
boolean isHyphen = false;
if(str.indexOf("-") > -1) {
isHyphen = true;
}
for(int i=1;i<=matcher.groupCount();i++) {
String replaceTarget = matcher.group(i);
if(i == 2) {
char[] c = new char[replaceTarget.length()];
Arrays.fill(c, '*');
replaceString = replaceString + String.valueOf(c);
} else {
replaceString = replaceString + replaceTarget;
}
if(isHyphen && i < matcher.groupCount()) {
replaceString = replaceString + "-";
}
}
}
return replaceString;
}
public static String name(String str) {
String replaceString = str;
String pattern = "";
if(str.length() == 2) {
pattern = "^(.)(.+)$";
} else {
pattern = "^(.)(.+)(.)$";
}
Matcher matcher = Pattern.compile(pattern).matcher(str);
if(matcher.matches()) {
replaceString = "";
for(int i=1;i<=matcher.groupCount();i++) {
String replaceTarget = matcher.group(i);
if(i == 2) {
char[] c = new char[replaceTarget.length()];
Arrays.fill(c, '*');
replaceString = replaceString + String.valueOf(c);
} else {
replaceString = replaceString + replaceTarget;
}
}
}
return replaceString;
}
public static String email(String str) {
String replaceString = str;
Matcher matcher = Pattern.compile("^(..)(.*)([@]{1})(.*)$").matcher(str);
if(matcher.matches()) {
replaceString = "";
for(int i=1;i<=matcher.groupCount();i++) {
String replaceTarget = matcher.group(i);
if(i == 2) {
char[] c = new char[replaceTarget.length()];
Arrays.fill(c, '*');
replaceString = replaceString + String.valueOf(c);
} else {
replaceString = replaceString + replaceTarget;
}
}
}
return replaceString;
}
public static String ip(String str) {
String replaceString = str;
Matcher matcher = Pattern.compile("^([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$").matcher(str);
if(matcher.matches()) {
replaceString = "";
for(int i=1;i<=matcher.groupCount();i++) {
String replaceTarget = matcher.group(i);
if(i == 3) {
char[] c = new char[replaceTarget.length()];
Arrays.fill(c, '*');
replaceString = replaceString + String.valueOf(c);
} else {
replaceString = replaceString + replaceTarget;
}
if(i < matcher.groupCount()) {
replaceString =replaceString + ".";
}
}
}
return replaceString;
}
}
