웹개발 교육/Java

[35일] Java (35) - 연습 문제

2022. 9. 15. 10:10
package oop0914;

public class Test07_quiz {

	public static void main(String[] args) {
		// 연습문제
		//문1)주민번호의 각 숫자의 합을 구하시오 (Character클래스와 charAt()함수 활용)
        //   8+9+1+2+3+0+1+2+3+4+5+6+7
		String jumin = "8912301234567";

		int sum = 0;
		for(int i=0; i<jumin.length(); i++) {
			char ch = jumin.charAt(i);  //'8'			
			sum = sum + ch;
		}//for end
		System.out.println(sum);

위 코드의 경우 출력해보면 우리가 원하는 값인 51이 나오지 않고 675가 나온다.

그 이유는 ch가 숫자가 아닌 '숫자' 인 문자형이기 때문에 아스키 코드값으로 나오기 때문이다.

 

따라서 문자 '8'을 숫자 8로(char를 int로) 변환하는 작업이 추가로 필요하다.

package oop0914;

public class Test07_quiz {

	public static void main(String[] args) {
		// 연습문제
		//문1)주민번호의 각 숫자의 합을 구하시오 (Character클래스와 charAt()함수 활용)
        //   8+9+1+2+3+0+1+2+3+4+5+6+7
		String jumin = "8912301234567";
		
		
		//내 풀이
		int hap = 0;
		for (int i=0; i<jumin.length(); i++) {
			hap = hap + jumin.charAt(i)-'0';
		}
				
		System.out.println(hap);
		
		/////////////////////////
		
		//다른 풀이
		int sum = 0;
		for(int i=0; i<jumin.length(); i++) {
			char ch = jumin.charAt(i);  //'8'
			//'8' -> 8
			sum = sum + Character.getNumericValue(ch);
		}//for end
		System.out.println(sum);

 

 

		//문2)대소문자를 서로 바꿔서 출력하시오 (Character클래스와 charAt()함수 활용)
        //   gONE wITH tHE wIND
        String str="Gone With The Wind";
        
        //내 풀이
		char[] c = new char[str.length()];
		String a = "";
        for (int i=0; i<str.length(); i++) {        	
        	c[i] = str.charAt(i);
        	if (c[i]>='A' && c[i]<='Z') {
        		c[i] = (char) (c[i] + 32);
        	} else if (c[i]>='a' && c[i]<='z') {
        		c[i] = (char) (c[i] - 32);
        	}//if end
        	
        	a += c[i];
        }//for end
        
        System.out.println(a);
        
        ///////////////////////////////////
        
        //다른 풀이
        for(int i=0; i<str.length(); i++) {
        	char ch = str.charAt(i);
        	if(Character.isUpperCase(ch)) {
        		System.out.print(Character.toLowerCase(ch));
        	} else if (Character.isLowerCase(ch)) {
        		System.out.print(Character.toUpperCase(ch));
        	} else {
        		System.out.print(ch);
        	}//if end
        }//for end

	}//main() end

}//class end

'웹개발 교육 > Java' 카테고리의 다른 글

[35일] Java (37) - 다형성  (0) 2022.09.15
[35일] Java (36) - super  (0) 2022.09.15
[34일] Java (34) - 주민 번호 유효성 검사  (0) 2022.09.14
[34일] Java (33) - Object 클래스  (0) 2022.09.14
[34일] Java (32) - override  (0) 2022.09.14
'웹개발 교육/Java' 카테고리의 다른 글
  • [35일] Java (37) - 다형성
  • [35일] Java (36) - super
  • [34일] Java (34) - 주민 번호 유효성 검사
  • [34일] Java (33) - Object 클래스
ewok
ewok
기록장ewok 님의 블로그입니다.
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • sqld 자격증
  • sqld 합격
  • 노랭이
  • org.springframework.beans.factory.UnsatisfiedDependencyException
  • git bash
  • SQLD
  • 생성자
  • 버전 관리
  • GIT
  • branch
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • this
  • merge commit
  • base
  • 브랜치

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
[35일] Java (35) - 연습 문제
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.