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. 6/17시작
    6/17 완료
  2. 뭐시기국화차
    완료
  3. 뭐시기국화차
    와 궁금했던건데 감사합니다!
    대화보기
    • 김동현
      감사합니다
    • 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은 줄 바꿈.
          • 03.09.2018 System.out.println(); 숫자, 문자, 문자열, \n \"
          • 양디고
            키보드에서 손때 왕휘균
            대화보기
            • 김형진
              ㅜ..정말 하고싶지않았던자바 너무무섭게느껴진다는.. 하두어렵대서..오늘부터 스타트합니다
            • 이지선
              2018.08.27 완료!
            • 백선우
              뀨르잼♥
            • powermn
              2018/08/21 재밌네요~ 완료
            • 크레산도
              오늘은 여기까지. 유익한 강의 감사합니다
            • 왕휘균
              ?
            • 진영
              8/9 출석
            • 신발장
              솔직히 너무 유익한거 같아요
            • pedkbm@gmail.com
              \n
            • 완료
            • 대박 이해잘되요
            • 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)


              위와 같은 오류가 발생하는데 해결하려면 어떻게 해야될까요?
              오류를 봐도 자바를 처음하다보니 뭔지 모르겠어요 ㅜㅜ
            • 동동
              완료!
            • 준영
              완료
            • 전민희
              완료
            • 멀캠A_Son
              완료
            • 김동민
              완료
            • aaronyoo
              감사합니다
            • 김형동
              완료 !!ㅎㅎ
            • mammoth
              고맙습니다.
            • 부르릉쾅
              정말 유익한 사이트인 것 같습니다.
              다른 사람들에게도 알려줘야겠네요.
            • c랑 똑같군요. 재미있습니다^^ 어서 듣고 파이썬 강좌도 들어야겠어요
            • Ra Yo
              줄바꿈 공부하고 갑니다
            • 자바B+가자
              2018/5/13 공부시작
            • 드론
              2018 05 07 월
            • ㅎㅅㅎ
              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 이
              // 출력됩니다
              대화보기
              버전 관리
              egoing
              현재 버전
              선택 버전
              graphittie 자세히 보기