주민번호 Masking 처리
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class MaskingSRC {
public static void main(String[] args) {
// TODO Auto-generated method stub
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
MaskingSRC mask = new MaskingSRC();
try {
while(true){
String str= br.readLine();
if(mask.lengthValidation(str)){
str= mask.masking(str);
System.out.println("mask result : "+str);
}
if(str.equals("break")){
break;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
public String masking (String readline){
String[] arr = readline.split("-");
String number = arr[1];
if(isNum(number)){
String s = number;
String[] divide = s.split("");
divide[5] = "*";
divide[6] = "*";
StringBuffer sb = new StringBuffer();
for(int i =0; i<divide.length ; i++){
sb.append(divide[i]);
}
number = sb.toString();
}
readline = arr[0]+"-"+number;
return readline;
}
//String 입력을 숫자인지 판별하는 코드
//0에서 9 이외의 문자나 특수문자가 올 경우 False를 리턴함
public boolean isNum(String number){
boolean flag = true;
if(!number.matches("[0-9]+")){
flag = false;
System.out.println("숫자가 아님");
}
return flag;
}
//String 입력을 문자인지 판별하는 코드
//소문자 a-z ,대문자 A-Z 이외의 특수문자나 숫자가 올 경우 False를 리턴함
public boolean isStr(String number){
boolean flag = true;
if(!number.matches("[a-zA-Z_]+")){
flag = false;
System.out.println("문자가 아님");
}
return flag;
}
public boolean lengthValidation(String str){
boolean flag = true;
String[] arr = str.split("-");
if(arr.length != 2){
System.out.println("올바르지 않은 주민번호 입니다.");
return false;
}
if(arr[0].length()!=6){
System.out.println("올바르지 않은 주민번호 입니다.");
return false;
}
if(arr[1].length()!=7){
System.out.println("올바르지 않은 주민번호 입니다.");
return false;
}
if(!isNum(arr[0])){
return false;
}
return flag;
}
}