String 클래스에서 제공하는 기본 메소드들이 있다.
문자열 비교하기
문자열 합치기
문자열 자르기
위 3개 공부
동등 연산자(==) 로 문자열 비교
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 이 들어갈 수 있는 변수는 안전하게 소괄호 안에 넣어서 비교하도록 권장
문자열이 따로 나뉘어져 있을 때, 문자열을 합쳐야 할 때
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); // 출력 결과 : 로비로고안녕
원하는 위치의 문자열을 가져올 수 있음
문자열.substring(시작 인덱스, 끝 인덱스)
String a = "아 진짜 하기싫다"
System.out.println(a.substring(5, 9); // 출력 결과 : 하기싫다

그림을 보면 문자열의 인덱스는 8까지 있는데 왜 끝 인덱스를 9로 해야 원하는대로 출력이 될까?
substring은 끝 인덱스는 출력하지 않기로 했기 때문에, 출력하고 싶은데 까지 자르고 싶으면 인덱스+1 을 해줘야 한다. 그림처럼 더 이상의 인덱스가 없으면, 뇌피셜이지만 아마 가상의 인덱스를 더 만든 후에 결과 값을 내놓는거지 않을까 싶다
String 클래스의 몇가지 메소드