입력 각 줄에 있는 단어 수와 (공백을 제외한) 글자 수를 세어 출력하시오. 한 줄에는 공백 포함 최대 1024글자가 있을 수 있고, 단어는 공백으로 분리된 연속된 글자들을 의미합니다. 단어 사이에는 공백이 여러 개 있을 수도 있습니다. 각 줄의 첫 머리와 끝에 여러 개의 공백이 있을 수도 있습니다. 아래 예처럼 두 줄이 입력되면 두 줄 각각에 대해 글자수와 단어수를 출력해야 합니다.
여기에서 공백이란 공백문자(space bar)나 tab 문자를 의미합니다. [ \t]
입력에는 word character인 [a-zA-Z0-9_]와 공백인 [ \t], 줄바꿈 문자인 [\r\n]만 들어 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package questions;
import java.io.*;
import java.util.*;
public class Main01 {
static Scanner sc = new Scanner(System.in);
public static int letterCount(String input) {
int count = 0;
input = input.replaceAll("\\s+", "");
for(int i = 0; i < input.length(); i++) {
if (input.charAt(i) != ' ')
count++;
}
return count;
}
public static int wordCount(String input) {
input = input.replaceAll("\\s+", " ");
input = input.trim();
int howlong = input.split(" ").length;
return howlong;
}
public static void main(String[] args) throws IOException{
ArrayList<String> result = new ArrayList<>();
boolean read = true;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(read){
String input = br.readLine();
if(input.equals("")){
read = false;
} else {
result.add(input);
}
}
for(int i = 0 ; i < result.size(); i++){
System.out.printf("%d %d\n" , letterCount(result.get(i)) , wordCount(result.get(i)));
}
}
}
|
cs |
'Language > JAVA' 카테고리의 다른 글
Game project (0) | 2022.01.04 |
---|---|
Collector / Collection FrameWork (0) | 2021.12.12 |
Multi Thread Examples (0) | 2021.11.24 |
Interface (0) | 2021.11.04 |
조회 프로그램 (0) | 2021.10.12 |