Post

변수와 자료형 - 문자열

1. 자료형 - 문자열 (String)

  • 문자들로 이루어진 집합
1
2
String s1 = "Hello World!";
String s2 = "01234";
  • 문자열 메소드
    • equals, indexOf, replace, substring, toUpperCase
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public class Main {
    public static void main(String[] args) {
    // 1. 자료형 - 문자열
        System.out.println("== 문자열 ==");
        String s1 = "Hello World!";
        System.out.println("s1 = " + s1);
        String s2 = "01234";
        System.out.println("s2 = " + s2);

    // 1-1. equals
        System.out.println("== equals ==");
        String s3 = "Hi";
        String s4 = "Hi";
        System.out.println(s3.equals(s4));
        System.out.println(s3 == s4);
        String s5 = new String("Hi");
        System.out.println(s3.equals(s5));
        System.out.println(s3 == s5);
			
    
	// 1-2. indexOf
        System.out.println("== indexOf ==");
        String s6 = "Hello World!";
        System.out.println(s6.indexOf("!"));
        System.out.println(s6.indexOf("!", s6.indexOf("!")+1)); 

    // 1-3. replace
        System.out.println("== replace ==");
        String s7 = s6.replace("Hello", "Bye");
        System.out.println("s7 = " + s7);

    // 1-4. substring
        System.out.println("== substring ==");
        System.out.println(s7.substring(0, 3));
        System.out.println(s7.substring(0, s7.indexOf("!") + 1));

    // 1-5. toUpperCase
        System.out.println(s7.toUpperCase());

    // 2. 자료형 - StringBuffer
    System.out.println("== StringBuffer == ");

    }
}

image

  • 유의점1 :
    • String 사이의 “==” 연산자는 객체주소값 비교이다.
    • s3와 s4의 값이 같을경우, 정확히는 같은 주소값을 가리키고 있기에 값이 true로 나오는것이다
    • 반면 s5는 새로운 메모리주소를 할당한 것이기 때문에, “==”연산자로 비교하면 false가 나온다
  • 유의점2 :
    • indexOf를 통해 문자의 index위치를 발견하지 못하면 -1을 반환한다

2. 자료형 - StringBuffer

  • 문자열을 자주 추가하거나 변경할 대 사용하는 자료형
1
String Buffer sb1 = new StringBuffer("Hello World");
  • StringBuffer 메소드
    • append, insert, substring
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Main {
    public static void main(String[] args) {
    
   // 2. 자료형 - StringBuffer
    System.out.println("== StringBuffer == ");
    StringBuffer sb1 = new StringBuffer();
    sb1.append("01234");
    System.out.println("sb1 = " + sb1);
    sb1.append("56789");
    System.out.println("sb1 = " + sb1);

    String a = "01234";
    String b = "56789";
    String bak = a;
    System.out.println(a == bak);

    a += b;
    System.out.println(a);
    System.out.println(a == bak);
    }
}

image

3. 자료형 - 배열 (Array)

  • 많은 수의 데이터를 담을 수 있는 자료형
1
2
int[] myArray1 = {1,2,3,4,5};
char[] myArray2 = {'a','b','c','d','e'};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Main {
    public static void main(String[] args) {
    
   // 3. 자료형 - 배열
        System.out.println("== 배열 ==");
        int[] myArray1 = {1,2,3,4,5};
        System.out.println(myArray1[0]);
        System.out.println(myArray1[1]);
        System.out.println(myArray1[2]);
        System.out.println(myArray1[3]);
        System.out.println(myArray1[4]);

        char[] myArray2 = {'a','b','c'};
        System.out.println(myArray2[2]);

        String[] myArray3 = new String[3];
        myArray3[0] = "Hello";
        myArray3[1] = " ";
        myArray3[2] = "World";
        System.out.println(myArray3[0] + myArray3[1] + myArray3[2]);
    }
}

image

This post is licensed under CC BY 4.0 by the author.