자바 코딩테스트를 진행하다보면, 입력 받은 문자열의 타입, 형태를 변환하는 문제가 나온다.
파이썬을 사용할때는 split()으로 조건에 구애받지 않고 리스트에 문자열을 쪼개어 저장할 수 있었는데, 자바는 어떤 식으로 문자열을 분리하고, 문자열에서 배열 형태로 변환하는지 알아보자!
가장 익숙한 문자열 함수이다. String 클래스는 char를 여러개 붙여놓은 것과 같다.
그렇기 때문에 입력된 문자열의 문자들은 순서대로 char배열의 index값(0부터) 을 가진다.
String.substring(start);
String.substring(start, end);
// 특정 문자 이후 문자열 출력하기
String str = "ABC/DEF";
String result = str.substring(str.lastIndexOf("/")+1);
System.out.println(result);
// 특정 단어만 자르기
String str = "대리 : 김철수, 부장 : 김영희";
String target = "대리";
int target_num = str.indexOf(target);
System.out.println(target_num);
String result= str.substring(target_num, (str.substring(target_num).indexOf(",")));
System.out.println(result+"님");
특정 문자를 기준으로 문자열을 잘라서 배열에 넣어주는 함수이다.
,이나 / 등의 특수 기호나 공백으로 문자열을 잘라서 배열에 넣을 때 용이하다.
String str = ""; //공백 문자열
for(int i = 0; i< 5; i++){
str += i+","; //for 문을 이용하여 1,2,3,4, 작성
}
String[] array = str.split(","); // ,기준으로 문자열 쪼개어 배열로 저장
for(int i = 0; i < array.length; i++){
System.out.print(array[i]);
}
// 공백으로 문자열 자르기
String str = "a b c d e ";
String[] array = str.split(" ");
//문자열 한 문자씩 자르기
String str = "abcde";
String a = str.split("");
문자열 중 특정 문자에 대한 인덱스 값을 알 수 있다.
.indexOf("찾을 특정 문자","시작할 위치")
.lastIndexOf()
String str = "abc"
char[] array = str.toCharArray();