์๋ฐ(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๋ ๋ฌธ์์ด์ ํ์ํ๋ฉฐ ๊ณต๋ฐฑ์ ์ฐพ๊ธฐ ๋๋ฌธ์ ๊ฐ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋จ์ด๋ฅผ ์๋ฅผ ๋๋ง๋ค ๋ฌธ์์ด์ ํ์ํ๊ฒ ๋๋ค.๋ฐ๋ผ์ ๋ฌธ์์ด์ด ๊ธธ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ ๋ฒ์ ํ์๊ณผ ๋ฌธ์์ด ์๋ผ๋ด๊ธฐ๊ฐ ๋ฐ์ํ ์ ์์ด ์ฑ๋ฅ์ ์ฝ๊ฐ์ ๋ถํ๊ฐ ์์ ์ ์๋ค!