[프로그래머스] JAVA 기초 수업 필기 (String 클래스 사용하기)

lobby_RoGo·2023년 10월 28일

JAVA 필기

목록 보기
21/48

Stirng 클래스 사용하기

String 클래스에서 제공하는 기본 메소드들이 있다.

Stirng 클래스 메소드 정리 사이트

기초에서 학습할 Stirng 클래스 메소드

  1. 문자열 비교하기

  2. 문자열 합치기

  3. 문자열 자르기

위 3개 공부

1. 문자열 비교하기 (equals)

동등 연산자(==) 로 문자열 비교

String a = new String("Hi");
Stirng b = new String("Hi");

System.out.println(a == b)
// 출력 결과 : false

왜????

같은 문자열이더라도 동등 연산자를 사용하면 false를 반환하기 때문에 동등 연산자 대신 equals 라는 메소드로 문자열을 비교해야 한다.

String a = new String("Hi");
String b = new String("Hi");
Stirng c = "Hi";

System.out.println(a.equals(b)); // 출력 결과 : true
System.out.println(a.equals(c)); // 출력 결과 : true
System.out.println(b.equals(c)); // 출력 결과 : true

String 객체로 생성을 하던, 문자열을 바로 만들었든 의도한 대로 바로 값을 비교가 가능

변수.equals([비교할]변수)
이렇게 사용하면 된다.

권장하는 방식
소괄호 안에는 null값이 들어갈 수 있는 변수를 넣는 것이 좋다고 한다.

String a = null;
String b = "Hi";

System.out.println(a.equals(b)); // 출력 결과 : NullPointerException // 비추천
System.out.println(b.equals(a)); // 출력 결과 : false				 // 추천

nul이 들어간 변수에 equals 메소드를 호출하면 NullPointerException 에러 발생

null 이 들어갈 수 있는 변수는 안전하게 소괄호 안에 넣어서 비교하도록 권장

2. 문자열 합치기 (concat)

문자열이 따로 나뉘어져 있을 때, 문자열을 합쳐야 할 때
Java는 concat 메소드를 제공합니다.

a.concat(b)

호출한 순서대로 두 문자열을 합침

String a = "안녕";
String b = "로비로고";

System.out.println(a.concat(b)); // 출력 결과 : 안녕로비로고
System.out.println(b.concat(a)); // 출력 결과 : 로비로고안녕

그치만 concat 메소드는 내부에서 처리하는 과정이 좀 있다고 한다.
그래서 문자열을 합칠 때는 덥셈 연산자(+)를 이용하는걸 더 권장한다.

String a = "안녕";
String b = "로비로고";

System.out.println(a+b); // 출력 결과 : 안녕로비로고
System.out.println(b+a); // 출력 결과 : 로비로고안녕

3. 문자열 자르기

원하는 위치의 문자열을 가져올 수 있음

  • 시작 인덱스부터
  • 끝 인덱스 까지
    (끝 인덱스의 문자는 포함하지 않음)

문자열.substring(시작 인덱스, 끝 인덱스)

String a = "아 진짜 하기싫다"

System.out.println(a.substring(5, 9); // 출력 결과 : 하기싫다

그림을 보면 문자열의 인덱스는 8까지 있는데 왜 끝 인덱스를 9로 해야 원하는대로 출력이 될까?

substring은 끝 인덱스는 출력하지 않기로 했기 때문에, 출력하고 싶은데 까지 자르고 싶으면 인덱스+1 을 해줘야 한다. 그림처럼 더 이상의 인덱스가 없으면, 뇌피셜이지만 아마 가상의 인덱스를 더 만든 후에 결과 값을 내놓는거지 않을까 싶다

내용 정리

String 클래스의 몇가지 메소드

  • 문자열 비교 : 동등 연산자(==) vs equals 메소드
  • 문자열 합치기 : 덧셈 연산자(+) vs concat 메소드
  • 문자열 자르기 : substring 메소드
profile
한번 해보자구!

0개의 댓글