import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] arg){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine(); //next를 썼더니 공백을 기준으로 끊어 받아서 공백 포함해서 받아들여야한다(nextLine사용)
sc.close();
StringTokenizer st = new StringTokenizer(str," ");
System.out.println(st.countTokens());
}
}
StringTokenizer은 띄어쓰기를 기준으로 문자열을 토큰으로 인식한다.
StringTokenizer는 countTokens() 메서드를 쓸수 있는데 몇개의 토큰이 있는지 출력해준다....
결국 StringTokenizer를 사용해서 끝내긴했지만
그전에 split()으로 해결하려고 했었는데
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] arg){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine(); //next를 썼더니 공백을 기준으로 끊어 받아서 공백 포함해서 받아들여야한다(nextLine사용)
String trimStr = str.trim(); //앞뒤 공백제거를 위해서. trim은 중간 공백은 수정못함
String[] strArr = str.split(" ");
System.out.println(strArr.length);
}
}
예제 문제를 입력했을때는 문제가 없었으나
공백을 입력했을때,
아무것도 입력하지 않았을때,
배열 요소 개수를 1개로 인식해서 해결하지 못했다....
스페이스바, 앤터를 개행문자로 입력받아서 그런것 같다.
추후에 다시 삽질예정.
그래도 새로 많이 배웠다.
next() 문자 사이 공백 구분해서 입력받음
nextLine() 공백 포함해서 전부 입력받음
trim()은 문자열의 앞뒤 공백 제거
StringTokenizer은 구분자로 문자열 구분
쉬운 문제같은데 정답률이 왜 낮은지 알것같다..
'자바' 카테고리의 다른 글
[spring] redirect 사용 (0) | 2022.09.04 |
---|---|
[Java] Optional<T> isPresent, ifPresent 사용법 (0) | 2022.08.28 |
[java]LinkedList (0) | 2021.12.02 |
Hashmap 관련함수 (0) | 2021.11.24 |
[자바]오버로딩 (0) | 2021.10.10 |