import java.util.*; public class Main { public static void main(String[] args) { Scanner scn=new Scanner(System.in); String str=""; while(scn.hasNext()) { str+=scn.nextLine()+" "; } str=str.replaceAll("[,.;?!-]", ""); String arr[]=str.split(" "); ArrayList<String> list = new ArrayList<String>(); ArrayList<Integer> count = new ArrayList<Integer>(); int j=0; for(int i=0;i<arr.length;i++) { if(arr[i].equals("")) continue; for(j=0;j<list.size();j++) { if(list.get(j).toLowerCase().equals(arr[i].toLowerCase())) { count.set(j, count.get(j)+1); break; } } if(j==list.size()) { list.add(arr[i]); count.add(1); } } for(int i=0;i<list.size();i++) { System.out.println(list.get(i)+" : "+count.get(i)); } } /*題目:[C_ST38-中] 字數統計 作者:1010 時間:西元 2018 年3 月 */ }
2018年3月28日 星期三
[C_ST38-中] 字數統計
https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2691
題目有說道要去除標點符號,所以利用字串取代(replaceAll)將遇到的標點符號改為空字串,之後再使用字串切割(split)將字串切成陣列,最後在陣列走訪依序的計算每個單字的數量,比對單字是否存在時可以統一將單字轉成小寫(toLowerCase)
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言