파이널프로젝트-주간블로깅 1회

Moon·2024년 8월 19일

Mini, Final

목록 보기
4/8

https://inpa.tistory.com/entry/JAVA-%E2%98%95-String-StringBuffer-StringBuilder-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%84%B1%EB%8A%A5-%EB%B9%84%EA%B5%90

문자열 비교

상수끼리 비교

		// TODO : 동일하다 (상수끼리 비교)
        String text1 = "포도";
        String text2 = "포도";
        System.out.println(text1 == text2); //true

        // TODO : 동일하다. (상수끼리 비교, 컴파일 시 "포"+"도"는 "포도"로 합쳐짐, 상수가 됨)
        String text3 = "포도";
        String text4 = "포"+"도";
        System.out.println(text3 == text4); //true 

인스턴스끼리 비교

        // TODO : 동일하지 않다 (인스턴스 끼리 비교)
        String text8 = new String("포도");
        String text9 = new String("포도");
        System.out.println(text8 == text9); //false

인스턴수와 상수 비교 (== 사용)

        // TODO : 동일하지 않다. (text7은 StringBuilder 인스턴스가 된다. 인스턴스와 상수끼리 비교)
        String text5 = "포";
        String text6 = "포도";
        String text7 = text5+"도";
        System.out.println(text6 == text7); //false

        // TODO : 동일하지 않다 (인스턴스와 상수 끼리 비교)
        String text10 = String.join("%s%s", new String[] {"포", "도"});
        String text11 = "포도";
        System.out.println(text10 == text11); //false

        // TODO : 동일하지 않다 (인스턴스와 상수끼리 비교)
        String text12 = new StringBuilder("포").append("도").toString();
        String text13 = "포도";
        System.out.println(text12 == text13); //false

.equals() 사용

        // TODO : 동일하다. (equal사용, 인스턴스와 상수 비교)
        String text14 = new String("포도");
        String text15 = "포도";
        System.out.println(text14.equals(text15)); //true

        // TODO : 동일하다. (equal사용, 상수와 상수 비교)
        String text16 = "포도";
        String text17 = "포도";
        System.out.println(text16.equals(text17)); //true

        // TODO : 동일하다. (equal사용, 인스턴스와 인스턴스 비교)
        String text18 = String.format("%s도", "포");
        String text19 = new StringBuffer("포").append("도").toString();
        System.out.println(text18.equals(text19)); //true

        // TODO : 문자열 상수도 String 클래스가 가지고 있는 메서드를 사용할 수 있다.
        String text20 = "포도";
        System.out.println("포도".equals(text20)); //true     

문자열 상수에서도 String 클래스의 메소드를 쓸 수 있다.

String 클래스 메소드

.length

String text = "카페라떼";

int length = text.length();
// 4

String text = "라떼";

int length = text.length();
// 

.contains(CharSequence s)

String text = "안녕하세요. 오늘 좋은 날씨네요.";
boolean isContains = text.contains("오늘");
// true

// 반대는 다른 결과이다
boolean isContains = "오늘".contains(text);
// false

.startsWith(String prefix)

String text = "기도수첩으로 시작하는 하루";
boolean isCollect = text.startWith("기도");
// true

boolean isCollect = text.contains("노래");
// false

.trim()

원본훼손x

String text = "  오늘은 눈이 오는 날이네요     ";
String trimedText = text.trim();
// "오늘은 눈이 오는 날이네요"

.replace(CharSequence target, CharSequence replacement)

원본훼손x

String text = "카페라떼, 녹차라떼, 코드라떼";
String replacedText = text.replace("라떼", "AA");
// "카페AA, 녹차AA, 코드AA"

.substring(int beginIndex)

원본훼손x

String text = "123456789";

String subText = text.substring(2);
// "3456789"

String subText = text.substring(4);
// "56789"

String subText = text.substring(8);
// "9"

String subText = text.substring(9);
// ""

.substring(int beginIndex, int endIndex)

원본훼손x, beginIndex부터 endIndex전까지

String text = "123456789";

String subText = text.substring(2, 2);
// ""

String subText = text.substring(2, 3);
// "3"

String subText = text.substring(2, 4);
// "34"

String subText = text.substring(3, 6);
// "456"

.toLowerCase()

.toUpperCase()

.indexOf(String str)

찾지못하면 -1 반환.

.charAt(int index)

index번째 문자를 반환.

.compareTo(String anotherString)

  • 왼쪽 문자열이 오른쪽 문자열보다 오름차순 기준 더 앞에 있으면 음수.
  • 왼쪽 문자열이 오른쪽 문자열보다 오름차순 기준 더 뒤에 있으면 양수.
  • 왼쪽 문자열과 오른쪽 문자열과 동일하면 0.
  • 어떤 문자열이 더 앞이나 뒤에 있는지 확인할 때 사용.
  • 정렬을 위해 문자열을 비교할 때 사용.
int value = "abc".compareTo("jzis");
// -9 (의미 abc가 더 앞이다)

int value = "jzis".compareTo("abc");
// 9 (의미 abc가 더 앞이다)

int value = "aa".compareTo("aaa");
// -1 (의미 aa가 더 앞이다)

StringBuffer

0개의 댓글