给定的英文片段:
If someone loves a flower, of which just one single blossom grows in all the millions and millions of stars, it is enough to make him happy just to look at the stars. He can say to himself, "Somewhere, my flower is there…" But if the sheep eats the flower, in one moment all his stars will be darkened… And you think that is not important.实现代码如下:(参考网上代码,并进行了优化,再次记录下,日后细嚼)
package mianshiti;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import java.util.Map;public class WordCounts { public static void main(String[] args) throws Exception { //System.out.PRintln("请输入你要统计的字符串:按回车确认"); int counter=0; String str1="If someone loves a flower, "+ " of which just one single blossom grows in all the millions and millions "+ "of stars, it is enough to make him happy just to look at the stars. He can say to himself,"+ "/"Somewhere,my flower is there…/""+ " But if the sheep eats the flower,"+ "in one moment all his stars will be darkened… And you think that is not important."; /* String str2 = str1.replaceAll("[^(a-zA-Z)]"," "); String str3[] = str2.split(" "); for (int i = 0; i < str3.length; i++) { System.out.print(str3[i].toUpperCase()+" "); } System.out.println("/n---------------------------"); */ str1 = str1.toUpperCase().replaceAll("[^(a-zA-Z)]"," "); String str3[] = str1.split("//b"); //记录单词 Map<String , Integer> map = new HashMap<String , Integer>(); //统计各个单词出现的次数 for (String s1 : str3) { //将字符串俩端的空格去掉 if(s1.trim().length()>0){ s1=s1.trim(); int count = str1.split("//b"+s1.trim()+"//b").length-1; map.put(s1, count); }else{ map.put("空格", counter++); } } System.out.println("/n----------单词出现的次数分别为: ----------/n"); //单词出现次数 for (String key : map.keySet()) { System.out.println(key+"出现:"+map.get(key)+"次"); } //把元素加入list中 List<String> list = new ArrayList<String>(); //将所有的key加入list中 list.addAll(map.keySet()); // 排序前 System.out.println("/n***********加入list后的完整输出:**********/n"); ListIterator<String> it = list.listIterator(); while(it.hasNext()){ String str6 = it.next(); System.out.print(str6+" "); } System.out.println("/n"); System.out.println("/n------单词出现的位置如下: ----------/n"); for (String s : list) { System.out.println(s+"出现的位置:"+list.indexOf(s)); } // 开始排序 System.out.println("/n按照出现次数降序排列(AESC):/n"); for (int i = 1; i < list.size(); i++) { for (int j = 0; j < list.size() - i; j++) { if (map.get(list.get(j)) > map.get(list.get(j+1))) { String tmp = list.get(j); list.set(j, list.get(j+1)); list.set(j + 1, tmp); } } } // 排序后 System.out.println("/n排序后:/n"); for (String s : list) { System.out.println(s+"出现次数:"+map.get(s)); } }}运行结果:
----------单词出现的次数分别为: ----------THAT出现:1次A出现:1次ALL出现:2次SOMEONE出现:1次SINGLE出现:1次BE出现:1次SOMEWHERE出现:1次THERE出现:1次ONE出现:2次BLOSSOM出现:1次SHEEP出现:1次SAY出现:1次空格出现:65次MAKE出现:1次DARKENED出现:1次JUST出现:2次HIMSELF出现:1次THE出现:4次THINK出现:1次HAPPY出现:1次WHICH出现:1次OF出现:2次FLOWER出现:3次IF出现:2次ENOUGH出现:1次BUT出现:1次MOMENT出现:1次MILLIONS出现:2次IN出现:2次IMPORTANT出现:1次IS出现:3次IT出现:1次MY出现:1次HIM出现:1次GROWS出现:1次CAN出现:1次NOT出现:1次AT出现:1次HIS出现:1次LOVES出现:1次AND出现:2次STARS出现:3次WILL出现:1次TO出现:3次EATS出现:1次LOOK出现:1次HE出现:1次YOU出现:1次***********加入list后的完整输出:**********THAT A ALL SOMEONE SINGLE BE SOMEWHERE THERE ONE BLOSSOM SHEEP SAY 空格 MAKE DARKENED JUST HIMSELF THE THINK HAPPY WHICH OF FLOWER IF ENOUGH BUT MOMENT MILLIONS IN IMPORTANT IS IT MY HIM GROWS CAN NOT AT HIS LOVES AND STARS WILL TO EATS LOOK HE YOU ------单词出现的位置如下: ----------THAT出现的位置:0A出现的位置:1ALL出现的位置:2SOMEONE出现的位置:3SINGLE出现的位置:4BE出现的位置:5SOMEWHERE出现的位置:6THERE出现的位置:7ONE出现的位置:8BLOSSOM出现的位置:9SHEEP出现的位置:10SAY出现的位置:11空格出现的位置:12MAKE出现的位置:13DARKENED出现的位置:14JUST出现的位置:15HIMSELF出现的位置:16THE出现的位置:17THINK出现的位置:18HAPPY出现的位置:19WHICH出现的位置:20OF出现的位置:21FLOWER出现的位置:22IF出现的位置:23ENOUGH出现的位置:24BUT出现的位置:25MOMENT出现的位置:26MILLIONS出现的位置:27IN出现的位置:28IMPORTANT出现的位置:29IS出现的位置:30IT出现的位置:31MY出现的位置:32HIM出现的位置:33GROWS出现的位置:34CAN出现的位置:35NOT出现的位置:36AT出现的位置:37HIS出现的位置:38LOVES出现的位置:39AND出现的位置:40STARS出现的位置:41WILL出现的位置:42TO出现的位置:43EATS出现的位置:44LOOK出现的位置:45HE出现的位置:46YOU出现的位置:47按照出现次数降序排列(AESC):排序后:THAT出现次数:1A出现次数:1SOMEONE出现次数:1SINGLE出现次数:1BE出现次数:1SOMEWHERE出现次数:1THERE出现次数:1BLOSSOM出现次数:1SHEEP出现次数:1SAY出现次数:1MAKE出现次数:1DARKENED出现次数:1HIMSELF出现次数:1THINK出现次数:1HAPPY出现次数:1WHICH出现次数:1ENOUGH出现次数:1BUT出现次数:1MOMENT出现次数:1IMPORTANT出现次数:1IT出现次数:1MY出现次数:1HIM出现次数:1GROWS出现次数:1CAN出现次数:1NOT出现次数:1AT出现次数:1HIS出现次数:1LOVES出现次数:1WILL出现次数:1EATS出现次数:1LOOK出现次数:1HE出现次数:1YOU出现次数:1ALL出现次数:2ONE出现次数:2JUST出现次数:2OF出现次数:2IF出现次数:2MILLIONS出现次数:2IN出现次数:2AND出现次数:2FLOWER出现次数:3IS出现次数:3STARS出现次数:3TO出现次数:3THE出现次数:4空格出现次数:65新闻热点
疑难解答