[Java의 정석]Chapter2.변수(07~09)

Hello_Wendy·2022년 4월 3일
1

자바의 정석

목록 보기
7/61
post-thumbnail

Chapter 2. 변수

07. 문자 리터럴과 문자열 리터럴

문자 리터럴

작은 따옴표('')로 문자 하나를 감싼 것, 단 하나의 문자, Character

문자열 리터럴

큰 따옴표("")로 두 문자 이상 감싼 것, 문자의 연속된 나열, String
char ch = 'J'; //char ch = 'Java'; ← 이렇게 사용 불가
String name = "Java"; //변수 name에 문자열 리터럴 "Java"저장

📍 문자열 리터럴""안에 아무런 문자도 넣지 않은 것을 허용하며, 이를 빈 문자열(empty string)이라고 함
📍 문자 리터럴은 반드시 ''안에 하나의 문자가 있어야 함

String str = ""; //OK. empty string
char ch = ''; //error. ''안에 반드시 하나의 문자가 필요
char ch = ' '; //OK. 공백문자(blank)로 변수 ch를 초기화
  • 원래 String클래스(class)이므로, 아래와 같이 객체를 생성하는 연사자 new를 사용해야 하지만 특별히 이와 같은 표현도 허용
String name = new String("Java"); //String객체를 생성
String name = "Java"; //위의 문장을 간단히. 둘의 차이점은 9장 참고

08. 문자열 결합

  • 덧셈 연산자+는 피연산자가 모두 숫자일 때는 두 수를 더하지만, 피연산자 중 어느 한 쪽이 string이면, 나머지 한 쪽은 먼저 String으로 변환 후, 두 String으로 결합. 즉, 어떤 타입의 변수도 문자열과 덧셈연산을 수행하면 그 결과가 문자열이 됨
문자열 + any type → 문자열 + 문자열 → 문자열
any type + 문자열 → 문자열 + 문자열 → 문자열

ex

7 + " ""7" + " ""7 "
" " + 7" " + "7"" 7"

7 + "7""7" + "7""77"

7 + 7 + ""14 + """14" + """14"
"" + 7 + 7"7" + 7"7" + "7""77"
  • 덧셈 연사자는 왼쪽에서 오른쪽의 방향으로 연산을 수행하기 때문에 결합순서에 따라 결과가 달라짐에 주의
  • 숫자 7문자열 "7"로 변환 시 빈 문자열("")을 더해주면 됨
class EX2_7 {
	public static void main(String[]) args) {
    	String name = "Ja" + "va"; //Java 출력
        String str = name + 8.0; //Java8.0 출력
        
        System.out.println("" + "") // 공백 출력
        System.out.println("" + 7 + 7) // 77출력

🍕 참고

  • 문자+문자, 문자+숫자 의 결합시(앞뒤순서 관계없이) 아스키코드의 10진수로 변환되어 출력(단, 문자+문자열의 결합시 문자열로 출력)

09. 두 변수의 값 바꾸기

int x = 10;
int y = 20;

두 변수 x와 y에 저장된 값을 바꾸려면 어떻게 해야 할까?

💡 값을 임시로 저장할 변수가 하나 더 필요

int tmp; //임시로 값을 저장하기 위한 변수(빈 컵 역할)

tmp = x; // ① x의 값을 tmp에 저장
x = y; // ② y의 값을 x에 저장
y = tmp; // ③ tmp에 저장된 값을 y에 저장

ex

class Ex2_8 {
	public static void main(String args[]) {
    	int x = 10, y = 5; //한줄로 입력 시 마지막에 ; 입력
        System.out.println("x="+x); //x=10 출력
        System.out.println("y="+y); //y=5 출력
        
        int tmp = x; //1. x의 값을 tmp에 저장
        x = y; //2. y의 값을 x에 저장
        y = tmp; //3. tmp에 저장된 값을 y에 저장
        System.out.println("x="+x); //x=5 출력
        System.out.println("y="+y); //y=10 출력
profile
안녕 나의 새로운 세상

0개의 댓글