Java

숫자와 문자

프로그래밍 입문자에게 가장 익숙한 데이터 타입(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. gwonran
    19/10/19 복습완료
  2. 허공
    감사합니다!
  3. pardori
    "C:\\new\\nova" 역슬래쉬 앞에 역슬래쉬를 붙혀주시면 딥니다
    대화보기
    • paribori
      그렇다면 출력을 C:\new\nova 라고 한 줄에 다 출력을 하려고 하면 어떻게 하면 되나요? 즉, "\n" 줄바꿈을 하지 않고 그대로 \n을 한 줄에 표시하고 싶은 경우는 어떻게 하나요?

      System.out.println("C:\new\nova"); 라고 입력했더니

      ==> C:
      ew
      ova

      라고 나옵니다.

      \ 양쪽에 큰 따옴표를 입력해도 해결이 안 되는군요?
    • dragonflyinn
      속이 너무 시원해서 눈물이 다 날 지경입니다♡
    • bangbyb
      완료
    • 워나
      2019/9/21 완료
    • 강민진
      감사합니다!
      대화보기
      • PassionOfStudy
        190904 Note
        *숫자와 문자
        data type(자료형)인 숫자, 문자와 문자열에 대해서 알아봤다
        이스케이프문자사용과 문자의 연산 그리고 여러 줄을 표시하는 방법에 대해서 알아봤다.
      • s870809
        2019-09-04 완료
      • 네 해당하는 글자의 아스키코드가 합쳐진 결과입니다.
        세상에 존재하는 모든 문자의 해당하는 아스키코드가 존재하는 지는 잘 모르겠다만 알파벳과 한글의 경우에도 아스키코드가 존재합니다.

        https://minipol.tistory.com......%92

        한글의 아스키코드표 입니다.

        p.s.
        아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않는다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.

        출처: 위키백과
        대화보기
        • 콩지니
          2019-08-29
          수강완료
        • 홍주호
          20190828 완료
        • doevery
          수강완료
        • 다나가
          190814 - 수강 완료!!!!!
        • 강민진
          질문있습니다!

          System.out.println('1' + '1'); -> 98
          이 경우에는
          아스키코드 1이 16진수 31이고 10진수 49라서 98이 나오는 것. 문자들끼리 덧셈을 한 것인데 이 '1'이라는 문자코드는 사실 49로 컴퓨터에 저장이 되어 있고 이를 더하게 되면 98이 나오는 것

          System.out.println('생' + '활'); 을 하면.
          104249 가 출력이되는데
          생에 해당하는 숫자(문자코드)와 활에 해당하는 숫자(문자코드)가 더해져서 104249를 만든 것인가요?
          각각의 문자마다 해당하는 문자코드가 있는 것인가요??(아스키코드말고도)
        • Hyeon-Jun Ha
          완료
        • 얼그레이
          감사합니다~ 190627
        • 진한
          음 ~~ 쿼테이션을 저렇게... 처음알았넹 ㅎㅎ 감사합니다.
        • 6/17시작
          6/17 완료
        • 뭐시기국화차
          완료
        • 뭐시기국화차
          와 궁금했던건데 감사합니다!
          대화보기
          • 김동현
            감사합니다
          • 2mindd
            4/20
          • ZANYABI
            숫자와 숫자열
            System.out.println( );
            이 코드는 '( ) 안에 있는 값을 출력한다' 는 뜻입니다.

            System.out.println(Hello); 는 Hello 라는 결과를 출력하고
            System.out.println(7); 은 7 이라는 결과를 출력하고
            System.out.println(3+4); 역시 7 이라는 결과를 출력합니다.

            만약 3+4라는 과정 자체를 출력하려면
            System.out.println("3+4"); 의 경우에는 3+4 라는 결과를 출력합니다.

            이처럼 이클립스는 "큰따옴표" 안에있는 값을 숫자로 인식하지 않습니다.
            + - * / 를 통해 사칙연산을 표현할수 있습니다.


            문자와 문자열
            A, B, C ... 등 한글자짜리 = 문자
            AB, AC ... 등 문자의조합 = 문자열
            java 내에서 문자 ≠ 문자열 다르게 인식한다.

            문자 = ' '
            문자열 = " " 을 사용하는것을 기본으로 하며, 그렇지 않을시 오류가 생긴다.
            하지만 한글자 짜리는 문자도, 문자열도 될수있다. '생' "생" 모두 가능하다.
            여기서 아까 배운 숫자열의 "1"은 숫자가 아닌 문자취급을 받는것을 알수있습니다.

            + 연산자는 문자열에서도 사용 가능합니다. "생활코"+'딩' = 생활코딩 출력


            이스케이프
            프로그램 내에 대사같은걸 넣고싶을때 "..."와 같은 큰따옴표는 어떻게 넣어야할까?
            우리가 넣고싶은 " 는 기호로 해석되어 버린다. 하지만 기호 앞에 \를 입력하면
            java는 뒤에 따라오는 기호를 단순 문자열로 해석하도록 강제합니다.
            이를 이스케이프라 합니다.

            여러줄 표시하기
            \n 은 '줄바꿈' 이라는 기호로 해석됩니다.
          • 자바초보
            코딩공부하는데 많은 도움이됩니다 감사합니다 ^^
          • 라또마니
            고맙습니다.
          • 김창완
            공부 공부 공부
          • 자바나들이남
            int/int 라서 int형으로 리턴하니 정수가 나오는거 같아요.
            int aa = 8, bb = 7;
            System.out.println(aa / bb); //return 1
            숫자 데이터 타입을 변경해줘보세요.
            float aa = 8, bb = 7; //float 또는 double
            System.out.println(aa / bb); //return 1.14xxxx
            대화보기
            • 만도스
              8/7.0으로 해보셔요
              대화보기
              • 핫트넘
                나누기 할 때 8/2는 4로 잘 나오는데 8/7로 하면 답이 1로 나오네요 나누기는 정수로만 표시되는건가요?
                1.2+1.5는 5로 잘 오는데...
              • 자바초보 호돌이
                어제 저희 형이 이 사이트 추천해줬는데요 오늘 한번 나와있는대로 해봤더니 확실히 대학 1학년때 배웠던 자바가 조금씩나마 되새김이 되고 설명도 참 초보자들도 오래간만에 자바를 해보는 사람들에게도 참 쉽게 잘 되어 있어서 좋네요 ㅎㅎㅎ
              • 조제연
                완료
              • 더티팬더
                18.12.05
              • 코다러버
                완료!
              • 늦은개
                오늘 첫 시작입니다 핫팅
                역시 html도 그렇지만 아주 자세히 쉽게 해주셔서 이해가 쑥쑥됩니다
                이걸 더 이해 하려면 변형해서 연습을 해야 하는거죠?
              • 5vertime
                System.out.println("\"2\"+\"1\"") 하니까 되네여
                대화보기
                • 5vertime
                  "2"+"1" 을 출력하려면 어케 해야하나요 넘 어렵네영
                • 칼립소
                  18.10.08
                  큰 따옴표 문자열 인식 \"

                  줄바꿈 \n
                • 전민희
                  18.09.27 역슬래쉬 \" 큰 따음표 자체를 문자열로 인식한다. 역슬래쉬\n은 줄 바꿈.
                • heike
                  03.09.2018 System.out.println(); 숫자, 문자, 문자열, \n \"
                • 양디고
                  키보드에서 손때 왕휘균
                  대화보기
                  • 김형진
                    ㅜ..정말 하고싶지않았던자바 너무무섭게느껴진다는.. 하두어렵대서..오늘부터 스타트합니다
                  • 이지선
                    2018.08.27 완료!
                  • 백선우
                    뀨르잼♥
                  • powermn
                    2018/08/21 재밌네요~ 완료
                  • 크레산도
                    오늘은 여기까지. 유익한 강의 감사합니다
                  • 왕휘균
                    ?
                  • 진영
                    8/9 출석
                  버전 관리
                  egoing
                  현재 버전
                  선택 버전
                  graphittie 자세히 보기