String 다루기(2) - substring(), indexOf()
String 다루기(2)
substring(), indexOf()
ㆍ 이전글에서 indexOf에 대해 간단하게 알아보았습니다
ㆍ 이번에는 substring()의 사용방법과 indexOf와 함께
사용하는 방법에 대해 알아보도록 하겠습니다.
일단 substring()에 대해서
substring()은
문자열을 잘라주는
메서드입니다.
일단 다른
문자열처리
메서드와 결합없이
substring만 사용하는
방법에 대해 알아보겠습니다.
substring(int beginIndex)
먼저
String.substring(int형 인자 1개)은
String의 시작위치를 잡아서
새롭게 String을 반환해주는
메서드입니다.
예를 들어서
String= "Apple Banana Orange"
이렇게 담겨있을때
앞에 Apple을 빼버리고
String= "Banana Orange"
바나나와 오렌지만
담고 싶을 경우
String의 시작위치를
B부터 잡아주면 되겠죠
이전글에서 문자열의
위치에 대해 알아보았으므로
생각해보면 B는 바로 6번째
위치라는 것을 알 수 있습니다
이를 토대로 코드를 작성해서
확인해보면
String str = "Apple Banana Orange";
String str2 = str.substring(6);
Log.d("ITPANGPANG","결과=>"+str2);
잘 나왔죠?
자 그럼 여기서.
Banana의 위치를 모른다면?
이제부터가 String처리가
재밌어지는 부분이죠
이전글에서 알아보았던
indexOf()와 결합한다면
쉽게 처리할 수 있습니다.
1단계 : str.indexOf("Banana");
바나나의 시작위치를 알아낸다
2단계 : str.substring(str.indexOf("Banana"));
바나나의 시작위치 이전의
String은 제외하고 시작이후
String을 반환한다
String str = "Apple Banana Orange";
String str2 = str.substring(str.indexOf("Banana"));
Log.d("ITPANGPANG","결과=>"+str2);
substring(int start, int end)
이번에는 int형 인자 2개를
넣어서 문자열을 잘라내는 방법을
알아보겠습니다.
위와 같은 문자열을 써보자면
여기서 Apple과 Orange를
제외하고
"Banana"만
출력하고 싶다면?
방법은 위에 나와있듯이
start, end의 위치를 잡아주시면
됩니다.
B의 시작 포지션이 6이고
Banana다음 (" ")공백 포지션이 12이므로
substring(6, 12);
라고 넣어주시면 됩니다
이렇게 되는 거겠죠?
코드로 보면
String str = "Apple Banana Orange";
String str2 = str.substring(6, 12);
Log.d("ITPANGPANG","결과=>"+str2);
잘 나온것을 확인했습니다.
이것 역시 만약 위치를 모른다면?
위와 똑같이
indexOf를 사용해주면
됩니다
String은 정말 다루기
나름인것 같습니다.
여기서도 방법이 정말
여러가지입니다.
시작위치 6은
그대로 Banana
위에서처럼 indexOf("Banana")
로 찾아줘도 되고
뒤에 위치 12를
잡아줄때
여러가지 방법이 있습니다
먼저
String str = "Apple Banana Orange";
String str2 = str.substring(str.indexOf("Banana"), str.indexOf(" ",str.indexOf("Banana")));
Log.d("ITPANGPANG","결과=>"+str2);
이렇게 잡을 수 있겠죠?
str.indexOf("Banana")
이거야 뭐 6이고
str.indexOf(" ", str.indexOf("Banana"))
" "공백을 찾아라
Banana의 시작위치
즉 6이후로
두번째 방법
String str = "Apple Banana Orange";
String str2 = str.substring(str.indexOf("Banana"), str.indexOf(" Orange"));
Log.d("ITPANGPANG","결과=>"+str2);
바로 12에 해당하는
위치를 찾기위해
공백뒤에 Orange까지 써줘버리면
한번에 찾아버릴 수 있습니다.
좀 더 정확하게 하려면
end 위치를
시작위치+Banana의 length
로 잡으면 되지만
아직 length를 한번도
언급을 안했기에 다음번에~
물론 같은 결과를
다른 메서드를
사용하면 더 쉽게 나타낼 수 있습니다
그리고 지금은 String에
중복음절이 없다고 가정하고
진행하고 있기에 100%로 완벽하지는
않습니다
이 점을 고려하면서
봐주세요!
끝!
'안드로이드(android) > String 다루기' 카테고리의 다른 글
String 다루기(3) - matches, regex (1) | 2016.10.24 |
---|---|
String 다루기 - indexOf(기본) (0) | 2016.10.21 |