Java

String - Java

성장코딩 2023. 1. 15. 18:09
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
package String;
 
public class String1 {
    public static void main(String[] args) {
        String s = "I like Java and Python and C.";
        System.out.println(s);
 
        // 문자열의 길이
        System.out.println(s.length()); // 29
 
        // 대소문자 변환
        System.out.println(s.toUpperCase()); // 대문자로
        System.out.println(s.toLowerCase()); // 소문자로
 
        // 포함 관계
        System.out.println(s.contains("Java")); // 포함된다면 true 포함되지 않는다면 false
        System.out.println(s.contains("C++"));
        // 위치 정보(맨 앞이 0부터 시작), Java 중 맨 앞 J는 7번째에 있다.
        System.out.println(s.indexOf("Java")); // 7
        System.out.println(s.indexOf("C#")); // 포함되지 않는 문자열이므로 -1 나온다.
        // 문자열의 마지막 글자의 위치 정보, and의 d의 위치
        System.out.println(s.lastIndexOf("and")); // 23
        // 특정한 문자열로 시작하는 지 확인
        System.out.println(s.startsWith("I like")); // 이 문자열로 시작하면 true
        System.out.println(s.endsWith(".")); // 이 문자열로 끝나면 true
 
    }
}
 
cs

 

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
45
46
47
48
49
50
51
package String;
 
public class String2 {
    public static void main(String[] args) {
        String s = "I like Java and Python and C.";
 
        // 문자열 변환
 
        // 위 문장을 "I like Java, Python, C."로 바꿔서 나타내고 싶다.
        System.out.println(s.replace(" and"", "));
        System.out.println(s); // 원래 문자열의 변화는 없음 // I like Java and Python and C.
 
        // 원래 문자열을 원하는 문자열로 바꿔놓으려면,
        s = s.replace(" and"", ");
        System.out.println(s); // I like Java,  Python,  C.
 
        s = "I like Java and Python and C."// 다시 원래대로
 
        // 문자열을 원하는 부분만 출력하고 싶을 때
        System.out.println(s.substring(7)); // 인덱스 7부터 시작해서 끝까지 출력(이전 내용은 제외)
        // 인덱스 번호를 모르는 경우가 많으므로
        System.out.println(s.substring(s.indexOf("Java")));
        // 결과: Java and Python and C.
        // 시작과 끝을 정해서 원하는 부분만 출력하고 싶을 때
        System.out.println(s.substring(s.indexOf("Java"), s.indexOf(".")));
        // 이때, substring(시작 인덱스, (끝+1) 인덱스) 임을 주의하자.
        // 즉, 끝 위치에 나타난 인덱스 바로 전의 인덱스에 해당하는 값이 출력된다.
        // 따라서, Java and Python and C 이 출력된다.
 
        System.out.println(s); // 원래 문자열의 변화는 없음 // I like Java and Python and C.
 
        // 원래 문자열을 원하는 문자열로 바꿔놓으려면,
        s = s.substring(7);
        System.out.println(s); // Java and Python and C.
 
        // 공백 제거
        s = "            I love Java.           ";
        System.out.println(s);
        System.out.println(s.trim()); // 앞뒤 공백 제거
 
        // 문자열 결합
        String s1 = "Java";
        String s2 = "Python";
        System.out.println(s1 + s2); // JavaPython
        System.out.println(s1 + "," + s2); // Java,Python
        System.out.println(s1.concat(",").concat(s2)); // Java,Python
 
 
    }
}
 
cs

 

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
package String;
 
public class StringCompare {
    public static void main(String[] args) {
 
        // 문자열 비교
        String s1 = "Java";
        String s2 = "Python";
 
        System.out.println(s1.equals(s2)); // 문자열 내용이 같으면 true, 다르면 false // false
        System.out.println(s1.equals("Java")); // true
 
        System.out.println(s2.equals("python")); // 대소문자 구분하므로 false
        // 대소문자 구분없이 내용이 같으면 true를 나타내게 하고 싶다면?
        System.out.println(s2.equalsIgnoreCase("python"));
 
        // 문자열 비교 심화
        s1 = "1234";
        s2 = "1234";
        // 문자열 변수 s1, s2 모두 한 메모리 공간에 존재하는 "1234"를 참조한다.
        System.out.println(s1.equals(s2)); // true // 참조하고 있는 메모리 공간의 내용을 비교
        System.out.println(s1 == s2); // true // 변수 각각이 참조하고 있는 것이 같은지를 비교
 
        s1 = new String("1234");
        s2 = new String("1234");
        // 문자열 변수 s1, s2 각각 다른 메모리 공간에 존재하는 "1234"를 참조한다.
        System.out.println(s1.equals(s2)); // true // 참조하고 있는 메모리 공간의 내용이 같으므로
        System.out.println(s1 == s2); // false // 변수 각각이 참조하고 있는 것이 다르므로
 
        // 따라서 Java에서 문자열의 내용을 비교하고 싶으면 equals를 써라!!
 
    }
}
 
cs