728x90
java에서 문자열 자르는 방법은 3가지가 있다.
- Substring
- split
- tokenizer
String Class
indexOf()
String ex = "123-123";
int idx = ex.indexOf("-");
//결과값 : 인덱스 값 출력
// 3
substring() : 문자열을 인덱스로 자른다.
//사용법
String.substring(start) //문자열 start위치부터 끝까지 문자열 자르기
String.substring(start,end) // 문자열 start위치 부터 end전까지 문자열 가져오기
String ex = "123-123";
ex.substring(4); //123
ex.substring(2,4); //3-3
split() : 지정한 문자를 기준으로 문자열을 잘라 배열로 반환
//1. 쉼표(,)로 문자열 잘라서 배열에 넣기
String str = "A,B,C";
String[] array = str.split(",");
//출력
for(int i=0;i<array.length;i++) {
System.out.println(array[i]);
}
//결과값
//array[0] = A
//array[1] = B
//array[2] = C
charAt() : 지정된 인덱스에서 char 값을 반환 (아스키코드 값 반환)
String ex = "123-123";
ex.charAt(0); // 49
ex.charAt(2); // 51
//만약 숫자로 출력하고 싶으면
int a = ex.charAt(0) - 48;
StringTokenizer Class
문자열을 토큰화 하는 클래스로, 분리된 문자열 조각을 토큰이라 하고, 문자열을 여러 개의 토큰으로 분리해준다.
생성자
import java.util.StringTokenizer;
StringTokenizer st = new StringTokenizer(문자열); // \t\n\r\f 공백 문자, 탭 문자, 줄바꿈 문자, 캐리지 리턴 문자, 폼피드 문자 기준으로 토큰화 ( 문자열 분리 )
StringTokenizer st = new StringTokenizer(문자열, 구분자); // 구분자 기준으로 토큰화 ( 문자열 분리 )
StringTokenizer st = new StringTokenizer(문자열, 구분자, true/false); // default : false, true 시 구분자도 토큰화 된다. (ex. 문자열,구분자,문자열,구분자,...)
Method
Method설명
int countTokens(); | 구분자를 통해 생성되는 토큰(Token)에 개수 |
boolean hasMoreElements | 토큰(Token)이 남아있는지를 판단 |
boolean hasMoreTokens | 토큰(Token)이 남아있는지를 판단 |
Object nextElement() | nextToken()과 동일하지만 반환형이 Object |
String nextToken() | 다음 토큰(Token)에 해당하는 문자열 반환 |
String nextToken(String delimeter) | 구분자에 의해 나누어진 다음 토큰(Token)에 해당하는 문자열 반환 |
Method 활용
import java.util.StringTokenizer;
public class Method
{
public static void main(String[] args)
{
StringTokenizer sample = new StringTokenizer("Hello~Java~World~!!", "~", false);
System.out.println("생성된 토큰 수 : " + sample.countTokens());
while(sample.hasMoreTokens())
{
System.out.println(sample.nextToken());
}
}
}
추가
import java.util.StringTokenizer;
public class Method
{
public static void main(String[] args)
{
StringTokenizer sample = new StringTokenizer("str :Hello?hi~Java~World~:?!!", "~:?", true);
System.out.println("생성된 토큰 수 : " + sample.countTokens());
while(sample.hasMoreTokens())
{
System.out.println(sample.nextToken());
}
}
}
// 결과값
생성된 토큰 수 : 13
str
:
Hello
?
hi
~
Java
~
World
~
:
?
!!
구분자 안에 포함되면 다 토큰화 한다. 또한 구분자 안에 포함된 값을 하나씩 토큰화 한다.
728x90
'Java' 카테고리의 다른 글
[Java] List, ArrayList 차이 (0) | 2022.08.30 |
---|---|
[Java] 문자열 합치기 왜 StringBuilder 인가 (0) | 2022.08.16 |
[Java] EOF 처리 (0) | 2022.08.05 |
[Java] 입력 InputStream, Scanner, BufferedReader 비교 (0) | 2022.07.26 |
[Java] java의 인코딩 Unicode, UTF-8, EUC-KR (0) | 2022.07.22 |
댓글