안녕하세요
양햄찌 블로그입니다.
오늘은 요청을 받아 오랜만에 자바에 대한 포스팅을 작성해보려고 합니다.
오늘 주제는~~
문자열 파싱하는 법, 문자열 자르는 방법 알아보기
첫번째 포스팅입니다.
먼저 문자열을 파싱하려면 문자열이 있어야겠죠?
자바는 문자열을 String이라는 클래스의 객체에다가 저장하고 있습니다.
public class Main {
public static void main(String[] args) {
String str = "jhnyang.tistory.com";
}
}
요런식으로요~!
문자열 파싱법
암튼 문자열을 자르는 방법에는 다양한 방법이 있을 수 있는데요.
◆ 몇번째부터 몇번째까지~ 이런식으로 위치에 해당하는 부분을 문자열로 잘라서 뽑아내고 싶으면 String 클래스의 substring을 사용하면 됩니다.
◆ 구분자가 중간 중간 있어, 구분자를 기준으로 문자열을 토막내고 싶을 경우, String클래스의 split 메서드나 StringTokenizer클래스를 사용하시면 돼요.
substring 메서드 사용법 알기
이 중 오늘은 인덱스 기준으로 문자열을 추출하는 String 클래스의 substring부터 알아봅시다.
substring은 내가 문자열 몇번째 글자부터 몇번째 글자까지 뽑아서 알려줘~~ 할 때 사용하는 메서드예요.
바로 요 메서드이죠.
substring이 오버로딩 되어 있는 것을 확인할 수 있습니다.
substring(n) 했을 경우 n은 index위치입니다. index는 0부터 시작하기 때문에 실질적으로는 n+1번째 글자를 가리키는 것이죠.
마찬가지로 substring(a,b)했을 경우 a+1글자부터 b+1글자까지라고 생각하기 쉬운데,
뒤에 오버로딩 된건 b를 포함하지 않고 그 전까지라 실질적으로는 a+1부터 b까지가 됩니다.
[substring 기본사용예시]
public class Main {
public static void main(String[] args) {
String str = "jhnyang.tistory.com";
String piece1 = str.substring(3);
String piece2 = str.substring(3, 7);
System.out.println(piece1);
System.out.println(piece2);
}
}
인덱스 3부터 끝까지 출력해보고
인덱스 3부터 4자리만큼 출력하고 싶으면 3+4인 7을 써주면 됩니다.
3,4,5,6 총 4글자가 뽑히니까요~~!
결과가 잘 포함된 것을 확인할 수 있습니다.
이렇게 잘린거죵
다양하게 사용해보기
■ 뒤에서 몇글자만 자르고 싶다
public class Main {
public static void main(String[] args) {
String str = "jhnyang.tistory.com";
String piece1 = str.substring(str.length()-3);
System.out.println(piece1);
}
}
요렇게 String클래스의 length 메서드를 이용해서 사용해주면 깔끔하죠?
str.length() -3 해주니, 뒤에서 3번째 전부터 출력하는거라 com이 나왔습니당.
■ 특정 문자열이 나오는 위치부터 쭉 자르고 싶다.
public class Main {
public static void main(String[] args) {
String str = "jhnyang.tistory.com";
String piece = str.substring(str.indexOf("ti"));
System.out.println(piece);
}
}
특정 문자열의 index 위치를 리턴해주는 String클래스의 indexOf 메서드를 활용해봅시다.
str.indexOf("ti")을 통해 ti이 나오는 시작위치를 반환하여 시작위치 값으로 사용했어요.
결과가 tistory.com으로 잘 나오는 것을 확인할 수 있습니다.
■ 만약, substring의 인자값으로 문자열에서 벗어나는 위치를 줬을 경우엔 어떻게될까요?
public class Main {
public static void main(String[] args) {
String str = "tistory";
String piece = str.substring(3, str.length()+2);
System.out.println(piece);
}
}
문자열 str이 tistory로 총 7글자인데, index 3부터 index 9전까지 출력하라 명령해봤습니다.
넵 예측하셨다시피 인덱스아웃오브 바운드 익셉션이 발생합니다.
오늘은 매우 간단한 메서드 String 클래스의 substring에 대해 살펴봤습니다.
다음 시간에는 딜리미터(delimeter)를 활용해 파싱하는 법에 대해 다뤄보도록 할게요.
고생하셨어요 다음에봐요~
최신 댓글