`
wangshu3000
  • 浏览: 131401 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

写了个小代码,统计史蒂夫乔布斯传英文版的单词数量

 
阅读更多
package com.ai;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

public class EnglishCount {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(
				new FileInputStream(new File("steve"))));
		System.out.println("Ok, find the file!");
		String line = null;
		byte[] wordB = new byte[30];
		Map<String, String> countArea = new HashMap<String, String>();
		int wordBP = 0;
		String theWord = null;
		System.out.println("Start count~");
		while ((line = br.readLine()) != null) {
			boolean inWord = true;
			byte[] lineB = line.getBytes();
			for (int i = 0; i < lineB.length; i++) {
				// is a character
				if ((lineB[i] < 91 && lineB[i] > 64)
						|| (lineB[i] < 123 && lineB[i] > 96)) {
					wordB[wordBP] = lineB[i];
					wordBP = wordBP + 1;
					inWord = true;
				} else if (inWord) {
					theWord = new String(wordB).trim().toLowerCase();
					countArea.put(theWord, theWord);
					wordBP = 0;
					inWord = false;
					wordB = new byte[30];
				}
			}
			if (inWord) {
				theWord = new String(wordB).trim().toLowerCase();
				countArea.put(theWord, theWord);
				wordBP = 0;
				inWord = false;
				wordB = new byte[30];
			}
		}
		System.out.println("End count~");
		System.out.println("Sum word of steve is :" + countArea.size());
	}
}


学习英语,把这个传记看完,可以学会1.3w多个单词
代码里做了去重处理,统计结果:
引用
Ok, find the file!
Start count~
End count~
Sum word of steve is :13900

看来最有效的学英语方式就是看英文读物。
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics