Masking 처리

Masking 처리

주민번호 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;
	}

}