[자바JAVA]1023 : [기초-입출력] 실수 1개 입력받아 부분별로 출력하기, split대신 StringTokenizer사용

문제 1023 : [기초-입출력] 실수 1개 입력받아 부분별로 출력하기

실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다. 만약 실수 부분이 0으로 시작하지 않는다면(예를 들어 1.000009) scanf(“%d.%d”, &a, &b)도 하나의 방법이 될 수 있다.

  • 입력 :
    실수 1개가 입력된다.
    (단, 입력값은 절댓값이 10000을 넘지 않으며, 소수점 이하 자릿수는 최대 6자리까지이고
    0이 아닌 숫자로 시작한다.)

  • 출력 :
    첫 번째 줄에 정수 부분을, 두 번째 줄에 실수 부분을 출력한다.

1
2
3
4
5
6
//입력예시
1.414213

//출력예시
1
414213




방법1 : split()사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class c1023 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String f = sc.next();

String[] ff = f.split("\\.");

String int1 = ff[0];
String int2 = ff[1];

System.out.println(int1);
System.out.println(int2);
}
}




방법2 : StringTokenizer사용

StringTokenizer는 단 한 개의 구분자만을 사용할 수 있으므로 복잡한 구분자를 사용해야 할 때는
Scanner 나 split을 사용해야 한다.

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();

//StringTokenizer 사용
StringTokenizer st = new StringTokenizer(s,".");

while (st.hasMoreElements()) {
System.out.println(st.nextToken());
}
}




다른 문제 풀이가 보고싶다면?

Comments