ABOUT ME

Today
Yesterday
Total
  • [Java] StringTokenizer 사용 방법 / readLine(), nextToken() 차이점 <적용문제>
    JAVA 2024. 11. 22. 11:17
    반응형

    StringTokenizer 사용방법 

     

    StringTokenizer st = new StringTokenizer("변수",  "구분자",  "참"); 

    StringTokenizer를 사용하는 방식은 4가지가 있다.

    ① 변수만 지정할 경우 공백기준으로 문자열을 분리한다.

    ② 구분자를 지정해 구분자 기준으로 문자열을 분리한다.

    ③ 둘 이상의 구분자는 이어서 작성한다. 

    ④ 구분자를 포함해 토근에 넣어 문자열을 분리한다. 

     

     

     

     

    *주의사항*

    StringTokenizer은   import java.util.*;  을 추가해줘야 한다. 또한, String타입으로만

    리턴하기 때문에 String타입을 제외하곤 형변환을 해줘야 한다.

     

     

     

     

    1. 띄어쓰기 기준으로 분리하기.

    StringTokenizer st = new StringTokenizer("변수")

    - 변수만 지정할 경우 공백기준으로 문자열을 분리한다.

    <console>

    안녕하세요

    코띵

    블로그입니다.

     

     

     

     

    2. 구분자 기준으로 분리하기.

    StringTokenizer st = new StringTokenizer("변수", "구분자")

    - 구분자를 지정해 구분자 기준으로 문자열을 분리한다.

    <console>

    안녕하세요

    코띵

    블로그입니다.

     

     

     

     

    3. 둘 이상의 구분자 기준으로 분리하기.

    StringTokenizer st = new StringTokenizer("변수", "구분자구분자")

    - 둘 이상의 구분자는 이어서 작성한다. 

    <console>

    안녕하세요

    코띵

    블로그입니다.

     

     

     

     

    4. 구분자로 지정된 구분자도 토큰에 넣어 분리하기.

    StringTokenizer st = new StringTokenizer("변수", "구분자구분자", "참")

    - 구분자도 토근에 넣어 문자열을 분리한다. 

    <console>

    안녕하세요

    !

    코띵

    >

    블로그입니다.

     

     

     

     

     

     

    readLine(), nextToken() 차이점

    BufferedReader 함수의 readLine() 메서드

    두 줄에 수가 하나씩 주어졌을 때 입력을 받는 방법.

    <console>

    1

    2

     

     

     

    StringTokenizer 함수의 nextToken() 메서드

    한 줄에 두 개의 수가 공백으로 구분되어 주어졌을 때 입력 받는 방법.

    <console>

    1 2

     

     

     

    공백 단위로 입력을 받다가 라인 단위로 입력을 받으려면 readLine()메소드를 다시 사용하면 된다.

    <console>

    1 2

    3

    4

     

     

     

    다시 공백 단위로 입력받으려면 st.nextToken() 메소드를 사용하면 될까?

    <console>

    1 2

    3

    4<엔터>

     

     

     

    <엔터>를 입력하는 순간 에러 메세지가 뜰 것이다.  아래와 같이 객체를 다시 호출해야 한다. 

     

     

     

     

     

     

    StringTokenizer를 사용해 간단한 문제를 풀어보자!

    과목명, 학점, 등급을 공백으로 구분하여 입력하고 과목명, 등급만 출력해 보자. 

    ObjectOrientedProgramming1 3.0 A+
    IntroductiontoComputerEngineering 3.0 A+
    ObjectOrientedProgramming2 3.0 A0
    ObjectOrientedProgramming1 A+
    IntroductiontoComputerEngineering A+
    ObjectOrientedProgramming2 A0

     

     

     

     

    <정답코드>

     

     

     

     

    위 문제는 풀었다면 아래 적용문제를 풀어보자. 

     

     

     

    <적용문제>

    다음 문제를 BufferedReader, StringTokenizer 를 사용해서 풀어보면 이해가 됐는지 도움이 될 것이다.

    https://www.acmicpc.net/problem/10811

Designed by Tistory.