-
[Java] 헷갈리는 문자열 함수 정리 (substring, split, charAt, indexOf, lastIndexOf)Java 2022. 5. 18. 16:18반응형
substring()
문자열의 '일부'를 뽑아오거나 여러 데이터를 하나의 문자열로 받아 원하는 문자열만큼 추출하는 메소드, 중간에 구분자가
없는 경우에 사용한다.
substring은 총 2가지가 있다
substring ( int beginIndex ) : 시작 인덱스부터 끝까지
substring ( int beginIndex, endIndex ) : 시작 인덱스부터 끝 인덱스 -1 까지
주의사항은 beginIndex는 0에서 시작하고 endIndex는 자르려는 글자 끝 index보다 1을 더해줘야 한다.
String str = "ABCDEFGHIJ" 가 있다고 가정하면, 인덱스는 0부터 시작된다.
그러므로 A는 0, B는 1, C는 2가 된다.
A B C D E F G H I J
0 1 2 3 4 5 6 7 8 9
A B C D E F G H I J 0 1 2 3 4 5 6 7 8 9 A 부터 D까지 잘라 오려면
str.substring(0, 4);
F 부터 J까지 잘라 오려면
str.substring(5, 9);
이런식으로 마지막 인덱스는 자르려는 글자 끝보다 항상 +1을 해줘야한다.
public class test { public static void main(String[] args) { String str = "ABCDEFGHIJK"; String result1 = str.substring(0,4); String result2 = str.substring(5,9); } }결과값
result1 : ABCD
result2 : FGHIJ

split()
split안에 넣어놓은 구분자를 기준으로 문자열을 잘라서 저장한다. String[] 을 리턴
public static void main(String[] args) { String str = "DOG#CAT#RABBIT#SHEEP"; String[] result = str.split("#"); for (int i = 0; i <result.length; i++) { System.out.println("결과 값 [" + (i+1) + "번쨰] :" + result[i]); } }이 예제에서는 str.split("#");
즉 # 을 기준으로 문자열을 잘라서 배열에 저장하게 된다.
결과값

charAt()
문자'열'에서 문자를 뽑는 함수이다. charAt 은 리턴타입이 char형으로 String 변수에서 사용 할 수있다.
substring 이랑 헷갈릴 수 있지만 charAt은 '한' 문자열만 뽑아낸다
public static void main(String[] args) { String str = "나는 짱이다"; System.out.println(str.charAt(3)); }결과값

indexOf()
문자열 중 입력받은 문자가 있으면 해당 문자열 위치의 인덱스 값을 리턴하고 없으면 -1을 리턴한다.
문자열의 조회는 0부터 시작
public static void main(String[] args) { String str = "가나다라마바사아자차카타파하"; System.out.println(str.indexOf("파")); }str.indexOf("파");
파 문자열의 위치를 '왼쪽에서부터' 조회한다.
결과값

lastIndexOf()
public static void main(String[] args) { String str = "가나다파라마파바사아자차카타파하"; System.out.println(str.indexOf("파")); }indexOf는 왼쪽에서부터 조회를 했다. 이와 반대로 latIndexOf는 반대서부터 조회를 하게된다.
결과값
반응형'Java' 카테고리의 다른 글
[Java] Exception - 예외처리 (0) 2022.05.20 [Java] API - String 클래스 (0) 2022.05.19 [Java] 내부 클래스 (0) 2022.05.18 [Java] 인터페이스 default 메소드 (0) 2022.05.18 [Java] 추상클래스 abstract (0) 2022.05.17