문2>주민번호 체크
     13자리의 숫자 스트링 중에서 앞에서부터 12자리의 숫자 스트링을 각 숫자로 분할하여 각 자리의 수에 가중치 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5를 곱합니다.
     곱한수를 모두 더하여 총합을 구합니다.
     총합을 11로 나눈 나머지를 구합니다.
     그 나머지를 11에서 뺀 결과가 CHECK DIGIT 입니다.
    뺀 결과가 2자리수인 경우에는 2자리수를 10으로 나눈 나머지가 CHECK DIGIT가 됩니다.
    CHECK DIGIT의 값이 입력 숫자 스트링의 13번째 숫자와 같으면 "CORRECT", 다르면 "INCORRECT"를 출력합니다.

 

 

  int[] num = new int[]{2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5};
  
  System.out.print("13자리 주민번호 체크합니다. 입력하세요 :");
  Scanner sc = new Scanner(System.in);
  String str = sc.next();
  
  int hap=0;
  int chk=0;
 
  for(int i=0; i<num.length; i++){
   hap += str.charAt(i) * num[i];
  }
  if(11 - hap%11 > 9){
   chk = (11 - hap%11)%10+1;
   System.out.println(chk);
  } else {
   chk = 11 - hap%11+1;
   System.out.println(chk);
  }
  
  System.out.println(str.charAt(12));
  System.out.println(chk);
  if(chk == str.charAt(12)) {
  
   System.out.println("INCORRECT");
  } else {
   
   System.out.println("CORRECT");
   
  }

문) Java Programming을 단일 문자열로 입력받고, 입력받은 문자열에 대해서 역순으로 출력하시오.

 

  System.out.println("Java Programming 단일 문자 입력 : ");

 

  Scanner sc = new Scanner(System.in);
  String str = sc.nextLine();  // nextLine은 문자열에 공백이 있어도 공백까지 입력받음

                   // next는 공백이 들어가는 곳까지만 입력받음.. 그래서 공백이 있으면 전체 문자열을 입력받지 못한다.

 

 

  //문자열 길이 보려고 그냥 써놓음. 없어도 됨....
  System.out.println("str.length" + str.length());

 

  //역순 출력
  for(int i=str.length()-1; i>=0; i--){
      System.out.print(str.charAt(i));
  }

'2020년도 이전 > [WebSig] JAVA' 카테고리의 다른 글

주민번호 체크  (0) 2013.06.26

+ Recent posts