20240813 수업
Integer.parseInt(Line.substring(1,2))
reference type int 의 Wrapper Class ⇒ class(Primitive type data):int type에 기능을 추가한 것
Line.substring문자열을 정수형태로 변환
(시작위치, 끝위치(+1해줘야 함.)) substr이면 (시작위치, 개수)
자세하게 알고 싶다면 아래 링크로 접속↓↓
2024.08.15 - [개발자/JAVA] - [java] String 함수 총정리
<주민등록번호 검증 계산 방법>
- 주민번호 전체 13자리 중에서 맨 마지막 숫자는 검증코드이므로 제외하고, 12자리에 대해서 맨 앞 첫 번째 숫자부터 각각 순서대로 2, 3, 4, 5, 6, 7, 8, 9를 곱하고 9 다음에는 다시 2, 3, 4, 5 순으로 곱한다.
- 주민번호 12자리 각 숫자와 2~9를 곱한 결과를 모두 더한다.
- 합계 숫자를 11로 나누어 나머지 값을 구한다.
- 다시 11에서 위 계산한 나머지 값을 뺀 것이 바로 check digit이다. 단, 검증숫자가 10이 나오면 0으로, 11이면 1로 간주한다.
- 01234567890123 :자릿수
- "123456-7890123" :Line
- 1234567890123 :jumin번호 []
- 234567 892345 :m []
Scanner in = new Scanner(System.in);
System.out.println("주민번호입력(123456-7890123):");
String Line = in.nextLine();
int [] m =new int[] {2,3,4,5,6,7,8,9,2,3,4,5};
int [] jumin=new int[13];
jumin[0]=Integer.parseInt(Line.substring(0,1));
jumin[1]=Integer.parseInt(Line.substring(1,2));
jumin[2]=Integer.parseInt(Line.substring(2,3));
jumin[3]=Integer.parseInt(Line.substring(3,4));
jumin[4]=Integer.parseInt(Line.substring(4,5));
jumin[5]=Integer.parseInt(Line.substring(5,6));
jumin[6]=Integer.parseInt(Line.substring(7,8));
jumin[7]=Integer.parseInt(Line.substring(8,9));
jumin[8]=Integer.parseInt(Line.substring(9,10));
jumin[9]=Integer.parseInt(Line.substring(10,11));
jumin[10]=Integer.parseInt(Line.substring(11,12));
jumin[11]=Integer.parseInt(Line.substring(12,13));
jumin[12]=Integer.parseInt(Line.substring(13,14));
int sum=0;
for (int i = 0; i < jumin.length-1; i++) {sum+=jumin[i]*m[i];}
int chk=11-sum%11;
//if(chk>10) chk=chk-10;
chk=chk%10; //나머지가 10이나 11로 나와서
if(chk==jumin[12])
System.out.println("정확한 주민번호"+chk);
else
System.out.println("틀린 주민번호"+chk);
<사업자 등록번호 검증 계산 방법 >
- 마지막 자릿수를 제외한 각 자릿수에 1,3,7,1,3,7,1,3,5를 각각 곱한 후, 모두 더한다.
- 마지막에서 두 번째 숫자에 5를 곱하고 10으로 나눠 나온 값의 몫을 1번의 결과에 더한다.
- 2번의 결과를 10으로 나누어 나머지만 취한다.
- 10에서 3번의 나머지를 뺀 수가 사업자 등록번호의 check digit이다.
Scanner sc = new Scanner(System.in);
System.out.println("사업자 등록번호입력(110-81-41272):");
String business = sc.nextLine();
int [] s =new int[] {
1,3,7,1,3,7,1,3,5
};
int [] num=new int[10];
for (int i = 0; i < 3; i++) {
num[i]=Integer.parseInt(business.substring(i,i+1));
}
for (int y = 3; y < 5; y++) {
num[y]=Integer.parseInt(business.substring(y+1,y+2));
}
for (int p = 5; p < 10; p++) {
num[p]=Integer.parseInt(business.substring(p+2,p+3));
}
int sum1=0;
for (int j = 0; j < num.length-1; j++) {
sum1+=num[j]*s[j];
}
int bs=(sum1+num[8]*5/10)%10;
int check=10-bs;
if(check==num[9])
System.out.println("정확한 번호"+check);
else
System.out.println("틀린 번호"+check);
'JAVA' 카테고리의 다른 글
[java]정규식 (Regular Expression) (0) | 2024.08.17 |
---|---|
[java] String 함수 총정리 (0) | 2024.08.15 |
[java]배열 (Array) (0) | 2024.08.13 |
[java] 반복문 for 2 (0) | 2024.08.12 |
[java] 반복문(for,while),등차∙피보나치∙등비 수열의 합 (0) | 2024.08.12 |