[Java]문자열 자르기
본문 바로가기
Java

[Java]문자열 자르기

by IYK2h 2022. 8. 9.
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

댓글