life is egg
계좌번호 만들기 + 마스킹하기 본문
자바자바를 잡아라
계좌번호 만들기 일단 절대 겹치지 않아야된다에서 시작
그럼 일정하게 증가하는 변수 + 난수 의 조합이면 절대로 겹칠일이 없겠다라는 생각
앞 4자리는 은행 고유번호 + 일정하게 증가하는변수 4자리 +난수 5자리
시작~
static int counter = 1;
private String createAccountNum(){
/* 계좌번호 생성 로직 = 정규 표현식 */
Random random = new Random();
int createNum = 0;
String ranNum = "";
String randomNum = "";
for (int i=0; i<5; i++) {
createNum = random.nextInt(9);
ranNum = Integer.toString(createNum);
randomNum += ranNum;
}
String onlyBankNum = "8016";
String countAccountNum = String.format("%04d",counter);
counter++;
String accountNum = onlyBankNum+"-"+countAccountNum+"-"+randomNum;
return accountNum;
}
사실 static으로 선언안해도 됐을 듯 하다라는 생각이 든다 무튼 이렇게 하면
자자 이제 뒷자리 5자리 마스킹을 해보자
https://develop-sense.tistory.com/62
[JAVA] 정규식을 이용한 마스킹(정규표현식 마스킹 처리)
안녕하세요. 소다맛사탕 입니다. 지난 포스팅 '[java] 휴대폰 번호, 계좌번호, 이름 마스킹(masking)'의 버전2, 정규식을 이용한 마스킹을 알아보겠습니다. ※ 정규식(또는 정규표현식) ; 텍스트 데이
develop-sense.tistory.com
요분이 쓴거 참고했다
코드는 이해가 안된다 ! ㅎㅎ;;
public String accountNoMasking(String accountNo){
// 계좌번호는 숫자만 파악하므로
String regex = "(^[0-9]+)$";
Matcher matcher = Pattern.compile(regex).matcher(accountNo);
if(matcher.find()) {
int length = accountNo.length();
if(length >= 5) {
char[] c = new char[5];
Arrays.fill(c, '*');
return accountNo.replace(accountNo, accountNo.substring(0, length-5) + String.valueOf(c));
}
}
return accountNo;
}
일단 문제가 있어서 내가 표현한 형식에 맞게 추가 가공을 해서 써야한다.
여기기준은 숫자만 있는걸로 기준이 되있어서 내가 뽑아낸겄처럼
8016-0001-51651 이렇게 중간에 "-" 이게 들어가 있으면 인식을 못해서 원래값을 리턴해버린다
그러면 이제 split 함수를 써서 "-"제거 하고 나온 8016 , 0001 , 51651 을 배열에 담아서 알맞게 조리해주면 된다..!
다시 l 알맞게 호출해주면 된다
22.12.12추가..
지금생각해보면 위에 굳이 저렇게 까지 할 필요가 있나 싶기도 하다
어차피 자리수는 정해져있고 그냥 String 자르고 뒤에 *****붙여주면 되는거 아닌가?
실전은 자리수가 안정해져있어서 그런거일까 ?
모르겠다 굳이 저렇게 할 필요가 있는건가 !
public void customerFindAccount(String customerName) {
for (Account account : accounts) {
if (customerName.equals(account)) {
String[] linkedString = account.getAccountNum().split("-");
System.out.println("이름 : " + account.getOwnerName()
+ "\n 계좌번호 : " + linkedString[0]+"-"+linkedString[1]+accountNoMasking(linkedString[2])
+ "\n 잔 액" + account.getBalance()
+ "---------------------------------------------");
}
}
}
이렇게 해서 나오는 결과는
무튼 잘된다
...!
'개인공부 > 삽질' 카테고리의 다른 글
게시글마다 댓글조회하기. (1) | 2022.12.26 |
---|---|
삽질 FE (0) | 2022.12.18 |
투두두두두 (0) | 2022.11.06 |
방명록 기능추가하기..! (0) | 2022.11.03 |
코멘트 삭제버튼 만들기 (0) | 2022.10.31 |