생활코딩

Coding Everybody

코스 전체목록

닫기

숫자와 문자

프로그래밍 입문자에게 가장 익숙한 데이터 타입(data type)은 숫자와 문자일 것이다. 이번 시간에는 실제로 가장 많이 사용되는 데이터 형인 문자와 숫자를 프로그래밍에서는 어떻게 표현하고 연산하는지 알아보자.

데이터 타입은 자료형(資料形) 또는 데이터형이라고도 한다.

숫자

자바에서는 따옴표가 없는 숫자는 숫자로 인식한다. (실행)

System.out.println(1+2);

결과 : 3

(실행)

System.out.println(1.2+1.3);

결과 : 2.5

곱하기를 할 때는 *(에스터리스크, Asterisk, 키보드 자판상으로 숫자 8 위)를 사용한다. (실행)

System.out.println(2*5);

결과 : 10

나누기를 할 때는 /(슬래쉬, slash, 키보드 자판상으로 오른쪽 shift 키 왼쪽)를 사용한다. (실행)

System.out.println(6/2);

결과 : 3

문자와 문자열

자바는 문자(Character)와 문자열(String)을 구분한다. 문자는 한 글자를 의미하고, 문자열은 여러 개의 문자가 결합한 것을 의미한다. 자바에서 문자는 '(작은따옴표)로 감싸야 한다. (실행)

System.out.println('생');

문자열은 "(큰따옴표)로 감싸야 한다. (실행)

System.out.println("생활코딩");

만약 문자열을 작은 따옴표로 감싸면 에러가 발생한다. (실행)

System.out.println('생활코딩');

하나의 문자를 큰따옴표로 감싼다고 에러가 발생하지는 않는다. 한 글자도 문자열이 될 수 있기 때문이다. (실행)

System.out.println("생");

이스케이프

만약 문자열 안에 큰 따옴표를 넣고 싶다면 어떻게 해야 할까? (실행)

System.out.println("egoing said "Welcome programming world"");
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Syntax error, insert ")" to complete MethodInvocation
	Syntax error, insert ";" to complete BlockStatements
	Syntax error on token(s), misplaced construct(s)
	The method programming(String) is undefined for the type datatype
	Syntax error on token "world", ( expected

위와 같이 오류가 발생할 것이다.

이런 때는 아래와 같이 처리하면 된다. (실행)

System.out.println("egoing said \"Welcome programming world\"");

\를 " 앞에 위치시키면 " 를 문자열의 시작과 끝을 구분하는 구분자가 아니라 단순히 문자로 해석하도록 강제할 수 있다. 이러한 기법을 escape(이스케이프)라고 한다. 즉 큰따옴표가 가진 문법적인 역할에서 도망(escape)쳐서 문자로 인식하도록 한다는 의미다.

여러 줄의 표시

여러 줄을 표시하고 싶을 때는 아래와 같이 하면 된다. (실행)

System.out.println("HTML\nCSS\nJavaScript\n");

문자의 연산

문자와 문자를 더할 때는 아래와 같이 한다. (실행)

System.out.println("생활"+"코딩");

결과 : 생활코딩

댓글

댓글 본문
작성자
비밀번호
  1. 크레산도
    오늘은 여기까지. 유익한 강의 감사합니다
  2. 왕휘균
    ?
  3. 진영
    8/9 출석
  4. 신발장
    솔직히 너무 유익한거 같아요
  5. pedkbm@gmail.com
    \n
  6. 완료
  7. 대박 이해잘되요
  8. Lifie9
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.python.cl.numberstring
    at java.base/java.lang.ClassLoader.preDefineClass(ClassLoader.java:891)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1007)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:374)
    at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:650)
    at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:547)


    위와 같은 오류가 발생하는데 해결하려면 어떻게 해야될까요?
    오류를 봐도 자바를 처음하다보니 뭔지 모르겠어요 ㅜㅜ
  9. 동동
    완료!
  10. 준영
    완료
  11. 전민희
    완료
  12. 멀캠A_Son
    완료
  13. 김동민
    완료
  14. aaronyoo
    감사합니다
  15. 김형동
    완료 !!ㅎㅎ
  16. mammoth
    고맙습니다.
  17. 부르릉쾅
    정말 유익한 사이트인 것 같습니다.
    다른 사람들에게도 알려줘야겠네요.
  18. c랑 똑같군요. 재미있습니다^^ 어서 듣고 파이썬 강좌도 들어야겠어요
  19. 줄바꿈 공부하고 갑니다
  20. 자바B+가자
    2018/5/13 공부시작
  21. 드론
    2018 05 07 월
  22. ㅎㅅㅎ
    System.out.println(1 + 1); // 2
    System.out.println("1" + "1"); // 11 문자열 1이 이어서 출력된 것입니다
    System.out.println('1' + '1'); // 98 문자를 그대로 출력하면 아스키코드의 번호로 출력됩니다
    // '1' 은 아스키코드(십진수)로 49 입니다
    // 따라서 '1' + '1' 은 49 + 49 로 변환되어 계산되고 그 결과 98 이
    // 출력됩니다
    대화보기
    • 4월 24일
    • 송영일
      \n이 띠어쓰기 이군요 공부하고 갑니다 2018년4월 24일
    • 박현모
      감사합니다~
    • 열정하나
      4월18일!
    • 개발킴
      예제가 주어지면 예제에 대한 답을 적어야하는데
      타이핑이 안나오는건 어떻게 공부하면 될까요??
      (예제:두 수의 합을 구하시오~~~. 나:뭔가 할 수 있을 것 같은데 뭐지 뭘 입력해야 하지 씨스템아웃그걸 입력하는건가??) 저의 상태는 이렇습니다 ㅜㅜ..
    • ㅎㅎ
      으으 오늘이거 다 볼거에요!!!!!!
    • Beginandbegin
      이해가안하는부분 해결~

      \"Welcome programming world\"이런식으로
      d뒤에"앞에\이유는 뒤에옮길경우 \n할 비슷한상황이생기기때문에 ("\"내용\""); 이라고표헌한다
    • 4/9
    • 아스키 값을 더하는거 같은데요 ㅎㅎ?
      대화보기
      • 문규
        C언어랑 많이 다른줄알았는데 꼭 그런것도 아니네요! 좋은 강의 감사합니다!
      • 너부링
        우분투(14.04) 콘솔에서 한글이 출력 되지 않습니다.

        처음 javac에서 에러가 떠서 'javac -encording UTF-8 파일이름'으로 컴파일 하니 컴파일은 됩니다.
        그 다음 java로 실행하니 '??'가 뜨며 제대로 출력이 안됩니다.
        어떻게 해결해야 하나요?
      • 심재호
        감사합니다 이해했습니다.
      • 택희
        감사합니다
      • 김예슬
        감사합니다 ~ ㅎㅎ
        대화보기
        • 이준혁
          넵 같이 하시는분이 있어서 뭔가 새롭네요ㅋㅋㅋ 혹시 이해 안가는거 있는면 댓글올리세요
          대화보기
          • 김예슬
            그르시군요!! 같이 끝까지 정주행 합시다!!
            대화보기
            • 김예슬
              네!! 자바 처음배워요 ㅎㅎ 이고잉님 이 첫시간에 말한것처럼 빠르게 숲으로 보고 그다음에 실습하면서 나무로 보려구요 ㅎㅎ 님은요?
              대화보기
              • 김예슬
                오홍 쉽구만
              • 감사합니다
                대화보기
                • 작은따옴표를 사용하면 문자로 인식하는데,
                  각 문자에는 고유 숫자값인 아스키 코드값이 하나씩 부여되어 있습니다.
                  1이라는 문자에는 49라는 아스키 코드 값이 할당되어 있기 때문에
                  문자'1'+문자'1' 은 49+49와 같기때문에 98이 출력됩니다.
                  마찬가지로 A라는 문자는 아스키코드가 65, B는 66이기 때문에
                  문자(char) 'A'+ 문자(char) 'B' = 65+66 = 131 이 출력되는 것입니다.
                  문자의 자료형인 char형을 출력하면 숫자로 출력되는 셈이죠/

                  출력 결과가 "AB"로 나오도록 하기 위해서는 출력결과가 문자열(String)이므로
                  문자끼리 더하는 과정도 문자열인 "A"+"B"를 쓰셔야 문자열(String)의 형태로 출력 됩니다.
                • System.out.println('1'+'1');

                  이렇게하면 왜 98이나오는거죠?

                  큰따옴표로하면 11이나오는데
                • 김진홍
                  감사합니다
                • kokuny
                  完了
                • 반자동
                  완료 ~
                • 장계영
                  (1+2) 코드 카피해서 저장하고 실헹했는데 error메세지 뜨고 Console 에는 Hollowrld 만 출력되는데 문제가 뭐죠??
                • 김재훈
                  //Hu Chyi Ming

                  문자로 쓰고 싶을 때 '만' 이죠

                  2+1 +1=> 4
                  '2'+1 +1=> 52
                  "2"+1 +1=> 211
                • 문자와 정수를 더하는데 문자보다 정수가 더 높은 단위이기 때문에 문자인 '2'가 ASCII값에 따라 정수로 변환되기 때문입니다. '2'는 ASCII값이 50이니까 50+1+1=52가 출력됩니다.
                • Hu Chyi Ming
                  System.out.println( '2' +1+1); 이 코드가 왜 22가 나오는게 아니고 52가 나오는지가 궁금합니다.
                  2를 문자로 인식하기 위해 작은 따옴표를 써서 2가 출력이 되고 그 다음 1+1이 왔으니 22이가 맞는게 아닌가요 ??
                  아래 보니까 아스키코드 때문이라는데 그럼 숫자는 문자로 쓰고 싶을때도 큰따옴표로 써야하는겁니까 ?
                버전 관리
                egoing
                현재 버전
                선택 버전
                graphittie 자세히 보기