์ž๋ฐ”(Java) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ 1-3. ๋ฌธ์žฅ ์† ๋‹จ์–ด. #StringTokenizer

2024. 7. 4. 11:31ใ†๐ŸŒŠ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ”ผ๋“œ๋ฐฑ/์ฝ”ํ…Œ ๊ด€๋ จ ๊ฐ•์ขŒ

 

-[์˜ค๋‹ต]

import java.util.*;
import java.io.*;

class Main{
    public void solution() throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String longStr= st.nextToken();  //์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด(๊ณต๋ฐฑ ๊ธฐ์ค€)์„ ์ œ์ผ ๊ธด ๋ฌธ์ž์—ด๋กœ ์ง€์ •

        while(st.nextToken() != null){
            String controlStr = st.nextToken();
            if(longStr.length() < controlStr.length()){
                longStr = controlStr;
            }
        }
        System.out.println(longStr);
    }
    public static void main(String[] args) throws Exception{
        new Main().solution();
    }
}

 

์ด ๋ถ€๋ถ„์—์„œ while์˜ ์กฐ๊ฑด๋ถ€ ์˜ค๋ฅ˜

        while(st.nextToken() != null){
            String controlStr = st.nextToken();
            if(longStr.length() < controlStr.length()){
                longStr = controlStr;
            }

 

 

[StringTokenizer ํด๋ž˜์Šค๋ž€?]

StingTokenizer ํด๋ž˜์Šค๋Š” ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๊ตฌ๋ถ„์ž๋กœ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ํด๋ž˜์Šค์ด๋‹ค.

์‚ฌ์šฉ์ž์— ์˜ํ•ด ๋ถ„๋ฆฌ๋œ ๋ฌธ์ž์—ด๋“ค์„ ํ† ํฐ(Token)์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

[StringTokenizer์ œ๊ณต ๋ฉ”์„œ๋“œ]


int ํ˜• /  countTokens() : ๋‚จ์•„์žˆ๋Š” ํ† ํฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
boolean ํ˜•  /   hasMoreElements() : ํ˜„์žฌ ์œ„์น˜ ๋’ค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ์ด ๋‚จ์•„ ์žˆ๋Š” ๊ฒฝ์šฐ true, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜
boolean ํ˜• / hasMoreTokens() : boolean hasMoreElements()์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด๋‹ค.

Object ํ˜• /   nextElement() : ๋‹ค์Œ ํ† ํฐ์„ Object ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
String ํ˜•  /  nextToken() : ๋‹ค์Œ ํ† ํฐ์„ String ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

- [ํ†ต๊ณผ]

import java.util.*;
import java.io.*;

class Main {
    public void solution() throws Exception {
        System.out.println("๋ฌธ์ž์—ด ์ž…๋ ฅ");
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        String longStr = "";  // ์ดˆ๊ธฐ๊ฐ’์„ ๋นˆ ๋ฌธ์ž์—ด๋กœ ์„ค์ •

        while (st.hasMoreTokens()) {
            String controlStr = st.nextToken();
            if (longStr.length() < controlStr.length()) {
                longStr = controlStr;
            }
        }
        System.out.println(longStr);
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

 

 

-[๋‹ค๋ฅธ ๋ฐฉ๋ฒ•]

import java.util.*;

class Main {
    public String solution(String str ){
        String answer = "";
        int m = Integer.MIN_VALUE, pos;
        while ((pos= str.indexOf(' '))!=-1){
            String tmp = str.substring(0,pos);
            int len = tmp.length();
            if(len>m){
                m= len;
                answer = tmp;
            }
        }
        if(str.length()>m) answer = str;
        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb = new Scanner(System.in);
        String str = kb.next();
        System.out.println(T.solution(str));
    }
}

 

    • indexOf์™€ substring ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ์ž๋ฅด๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • indexOf๋Š” ๋ฌธ์ž์—ด์„ ํƒ์ƒ‰ํ•˜๋ฉฐ ๊ณต๋ฐฑ์„ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹จ์–ด๋ฅผ ์ž๋ฅผ ๋•Œ๋งˆ๋‹ค ๋ฌธ์ž์—ด์„ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋œ๋‹ค.๋”ฐ๋ผ์„œ ๋ฌธ์ž์—ด์ด ๊ธธ ๊ฒฝ์šฐ์—๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ํƒ์ƒ‰๊ณผ ๋ฌธ์ž์—ด ์ž˜๋ผ๋‚ด๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์— ์•ฝ๊ฐ„์˜ ๋ถ€ํ•˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค!