본문 바로가기

카테고리 없음

Java 공부 일지(2024.10.25

문자열

 

문자열의 길이

sout 변수뒤에 .length로 문자열의 길이 알 수 있음

package chap_03;

public class _01_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());
    }
}
결과값

I like Java and Python and C.
29

 

대소문자 변환

변수뒤에 .toUpperCase() / .toLowerCase() 명령어로 각기 전체문장 대문자로 변환, 소문자로 변환이 가능하다

package chap_03;

import java.util.Locale;

public class _01_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());

        System.out.println(s.toUpperCase());
        System.out.println(s.toLowerCase());
    }
}
결과값

I like Java and Python and C.
29
I LIKE JAVA AND PYTHON AND C.
i like java and python and c.

 

포함관계

문장 속에서 특정 문구를 찾을 수 있는 명령어로 변수뒤에 .contains("찾는 단어")로 포함의 유무를 알 수 있음

문장 속에서 특정 문구의 위치를 찾을 수 있는 명령어로 변수 뒤에 .indexOf("찾는 단어")로 위치 정보를 알 수 있음

  - 컴퓨터에서는 시작 위치는 0부터 시작함

  - 문장 속에 포함되지 않는 단어는 -1을 출력함

indexOf 명령어는 처음으로 만나는 해당 단어를 / lastofindexOf 명령어는 마지막으로 만나는 해당 단어 위치를 알려줌

문자열이 해당 단어로 시작하는지는 startswith로 해당 단어로 끝나는지는 endwith로 알 수 있음

    package chap_03;

    import java.awt.geom.Line2D;
    import java.util.Locale;

    public class _01_String1 {
        public static void main(String[] args) {
            String s = "I like Java and Python and C.";
            System.out.println(s);

            System.out.println(s.contains("Java"));
            System.out.println(s.contains("C#"));

            System.out.println(s.indexOf("Java"));
            System.out.println(s.indexOf("C#"));
            System.out.println(s.indexOf("and"));
            System.out.println(s.lastIndexOf("and"));
            System.out.println(s.startsWith("I like"));
            System.out.println(s.endsWith("."));
        }
    }
결과값

I like Java and Python and C.
true
false
7
-1
12
23
true
true

 

문자열 변환

변수.replace명령어는 해당 문자열에서 바꿀 문자와 바꿔질 문자를 지정해 바꿀 수 있음

변수 .substring명령어는 잘라내기를 시작하고 싶은 문자 위치를 입력해주면 그 위치 이전에 문자들은 삭제됨

 - 변수 내의 문자열까지 삭제되는건 아님

 - 단어의 위치를 모를 경우 해당 함수 내에 이전에 사용했던 indexof 함수를 추가함으로 단어로 위치를 지정해줄 수 있음

 - 시작위치 , 끝 위치를 지정해줌으로 해당 위치들을 잘라낼 수 있음

(시작위치는 해당 단어 위치를 포함하지만 끝 위치는 포함하지 않는다)

package chap_03;

public class _02_String2 {
    public static void main(String[] args) {
        String s = "I like Java and Python and C.";

        System.out.println(s.replace("and", ","));
        System.out.println(s.substring(7));
        System.out.println(s.substring(s.indexOf("Java")));
        System.out.println(s.substring(s.indexOf("Java"), s.indexOf(".")));
    }
}
결과값

I like Java , Python , C.
Java and Python and C.
Java and Python and C.
Java and Python and C

 

공백 제거

trim() 함수로 공백을 제거 할 수 있다

package chap_03;

public class _02_String2 {
    public static void main(String[] args) {
        String s = "I like Java and Python and C.";

        s = "            I love Java.      ";
        System.out.println(s);
        System.out.println(s.trim());
    }
}
결과값

            I love Java.      
I love Java.

 

문자열 결합

문자열 결합 또한 정수 계산하는 것과 같이 +로 결합 가능함

결합할 문자열 변수 사이에 ","과 같이 일반 문자도 + 로 같이 결합 가능함

또는 concat 함수로 결합이 가능함

package chap_03;

public class _02_String2 {
    public static void main(String[] args) {
        String s1 = "Java";
        String s2 = "Python";
        System.out.println(s1 + s2);
        System.out.println(s1 + ", " + s2);
        System.out.println(s1.concat(", ").concat(s2));
    }
}
결과값

JavaPython
Java, Python
Java, Python

 

문자열 비교

변수.equals(비교할 변수) 형태로 문자열 변수가 서로 같은지 알 수 있음

변수.equals("비교할 단어") 형태로 문자가 서로 같은지 알 수 있음

-equals는 대소문자까지 비교해서 동일한지 파악함 / equalsignorecase는 대소문자 상관없이 문자만 같은지 비교함

package chap_03;

public class _03_StringCompare {
    public static void main(String[] args) {
        String s1 = "Java";
        String s2 = "Python";

        System.out.println(s1.equals("Java"));
        System.out.println(s2.equalsIgnoreCase("Python"));
    }
}
결과값

true
true

 

문자열 비교 심화

문자열 비교에서도 정수 비교와 같이 ==으로 같은지 확인 할 수 있음

-이는 다른 변수명에 같은 변수의 위치값이 저장되어 있는거라 동일하다고 판단함

-단 new라는 명령어를 붙여주면 해당 변수명에 다른 변수의 위치가 저장되어 다르다고 판단함

 *해당 이유로 자바에서 문자열을 비교할 때에는 equals를 이용해야 함

package chap_03;

public class _03_StringCompare {
    public static void main(String[] args) {
        String s1 = "1234";
        String s2 = "1234";

        System.out.println(s1.equals(s2));
        System.out.println(s1 == s2);

        s1 = new String("1234");
        s2 = new String("1234");
        System.out.println(s1.equals(s2));
        System.out.println(s1 == s2);
    }
}
결과값

true
true
true
false

 

특수문자 (\n , \t, \\, \", \')

\n : 줄바꿈을 해줌

\t  : 탭 효과를 줌

\\  : 하나의 \문자를 표현하기 위해 사용함

\"  : 문자열 내에서 ""를 표현하기 위해 사용함

\'   :  문자열 내에서 ''를 표현하기 위해 사용함

package chap_03;

public class _04_EscapeSequence {
    public static void main(String[] args) {
        System.out.println("자바가");
        System.out.println("너무");
        System.out.println("재밌어요");

        System.out.println("자바가\n너무\n재밌어요");
        System.out.println("해물파전\t\t9000원");
        System.out.println("김치전\t\t8000원");
        System.out.println("부추파전\t\t8000원");

        System.out.println("C:\\Program Files\\Java");

        System.out.println("단비가 \"냐옹\" 이라고 했어요");
        System.out.println("단비가 \'뭘 봐?\' 라는 표정을 지었어요");

        char c = 'A';
        c = '\'';
        System.out.println(c);
    }
}
결과값

자바가
너무
재밌어요
자바가
너무
재밌어요
해물파전 9000원
김치전 8000원
부추파전 8000원
C:\Program Files\Java
단비가 "냐옹" 이라고 했어요
단비가 '뭘 봐?' 라는 표정을 지었어요
'