알아야 할 개념
substr() 함수 사용법에 대해 알아야 한다.
1. 휴대폰 번호 마스킹(phone number masking)
public class Main
{
public static void main(String[] args) {
// 번호 설정
String phoneNum = "01012341234";
// 마스킹할 번호가 존재해야 하므로
if(phoneNum != null && !"".equals(phoneNum)){
phoneNum = phoneNum.substring(0,3) + "****"
+ phoneNum.substring(phoneNum.length()-4, phoneNum.length());
}
System.out.println("휴대폰 번호 마스킹 : " + phoneNum);
}
}
>> 휴대폰 번호 마스킹 : 010****1234
2. 계좌번호 마스킹(account number masking)
public class Main
{
public static void main(String[] args) {
// 계좌번호 설정(은행마다 자릿수 틀림. 11 ~ 13자리 사이)
// 예시는 13자리
String accountNum = "0001111123456";
// 계좌번호 앞 3자리, 맨 뒤 3자리를 빼고 마스킹
if(accountNum != null && !"".equals(accountNum)){
// 계좌번호 가운데 글자 마스킹 변수 선언
String middleMask = accountNum.substring(3, accountNum.length()-3);
// 마스킹 변수 선언(*)
String masking = "";
// 앞 3자리, 맨뒤 3자리를 빼고 모두 마스킹 하기위한 증감값
for(int i = 0; i < middleMask.length(); i++){
masking += "*";
}
accountNum = accountNum.substring(0,3)
+ accountNum.replace(middleMask, masking)
+ accountNum.substring(accountNum.length()-3, accountNum.length());
}
System.out.println("계좌번호 마스킹 : " + accountNum);
}
}
>> 계좌번호 마스킹 : 000*******456
맨뒤 3자리를 제외한 나머지 계좌번호 마스킹 처리(java)
// 계좌번호 설정(은행마다 자릿수 틀림. 11 ~ 13자리 사이)
// 예시는 13자리
public class Main
{
public static void main(String[] args) {
//계좌변호 accountNum 변수에 담아둔다.
String accountNum = "0001111123456";
// 계좌번호 accountNum이 null 아니면서 공백이 아닐경우 -> // 계좌번호 앞 3자리, 맨 뒤 3자리를 빼고 마스킹
if(accountNum != null && !"".equals(accountNum)){
// 계좌번호 글자 마스킹 변수 선언
String Mask = accountNum.substring(0, accountNum.length());
// 마스킹 변수 선언(*)
String masking = "";
// 앞 3자리, 맨뒤 3자리를 빼고 모두 마스킹 하기위한 증감값
for(int i = 0; i < Mask.length(); i++){
masking += "*";
}
// 인덱스 0~2번 까지 (총3개) 문자열 자르기.
accountNum = accountNum.substring(0,0)
// Mask -> masking으로 치환하기.
+ accountNum.replace(Mask, masking)
// 문자열 끝에서부터 3글자만 출력하고 싶다!
+ accountNum.substring(accountNum.length()-3, accountNum.length());
}
System.out.println("계좌번호 마스킹 : " + accountNum);
}
}
수정 한 최종 코드
// 계좌번호 설정(은행마다 자릿수 틀림. 11 ~ 13자리 사이)
// 예시는 13자리
public class Main
{
public static void main(String[] args) {
//계좌변호 accountNum 변수에 담아둔다.
String accountNum = "1232121111123456";
// 계좌번호 accountNum이 null 아니면서 공백이 아닐경우
if(accountNum != null && !"".equals(accountNum)){
// 계좌번호 마스킹처리할 영역지정해서 Mask 변수에 담아두고,
String Mask = accountNum.substring(0, accountNum.length());
// 마스킹 변수 선언(*)
String masking = "";
//맨뒤 3자리를 빼고 모두 마스킹 하기위한 증감값
for(int i = 0; i < Mask.length(); i++){
masking += "*";
}
// Mask(마스킹 처리할 부분) -> masking(*)로 치환(replace)하기.
accountNum = accountNum.replace(Mask, masking)
// 문자열 끝에서부터 3글자만 출력하고 싶다!
+ accountNum.substring(accountNum.length()-3, accountNum.length());
}
//출력
System.out.println("계좌번호 마스킹 : " + accountNum);
}
}
출력 결과:
또 다른 계좌번호 마스킹 처리 방법
public class Main
{
public static void main(String[] args) {
//계좌변호 accountNum 변수에 담아둔다.
String accountNum = "123456";
if (accountNum !=null && !"".equals(accountNum)){
// 계좌번호 마스킹처리할 영역지정해서 Mask 변수에 담아두고 ,
String Mask = accountNum.substring(accountNum.length()-3, accountNum.length());
// 마스킹 변수 선언(*)
String masking = "";
for(int i = 0; i < accountNum.length()-3; i++){
masking += "*";
}
System.out.println(masking + Mask);
}
}
}
'JAVA 프로그래밍' 카테고리의 다른 글
call by value , call by reference (0) | 2023.09.21 |
---|---|
자바 기초_ 메소드(method), 생성자, GETTER,SETTER (1) | 2023.01.18 |