作者qrtt1 (愚人)
看板java
标题Re: [问题] 有关档案读取
时间Sat Jun 23 21:18:50 2007
※ 引述《H45 (!H45)》之铭言:
: ※ 引述《NightPrince (shooting star)》之铭言:
: : 如果是英文文章的话,可以试试看StringTokenizer
: : 是 java.util package底下的一个class
: : 而你所说的是从档案读进输入,那就必须先读取一个档案的内容再使用
: : StringTokenizer
: : 档案的输出输入串流相关class,请参阅 java.io package
: : hint: File、FileReader、BufferedReader and so on.
: : example:
: : try
: : {
: : File file = new File("D:/abc.txt");
: : BufferedReader br = new BufferedReader(new FileReader(file));
: : String s;
: : StringTokenizer token;
: : ArrayList<String> strList = new ArrayList();
: : while( ( s = br.readLine()) != null )
: : {
: : token = new StringTokenizer(s);
: : while( token.hasNextToken() )
: : {
: : strList.add(token.nextToken());
: : }
: : }
: : }
: : catch(Exception ex)
: : {
: : ex.printStackTrace();
: : }
: 可否请教中文的文章该怎麽统计各个文字出现的字数?
: Ex:
: 输入:
: "背书包,上学去,我的书包里,有书也有笔,我有四本书,还有三枝笔,还有一个
: 小皮球,也在我的书包里"
: 输出:
: 背:1
: 书:5
: 包:3
: 上:1
: 学:1
: 去:1
: 我:3
: 的:2
: 里:2
: 有:5
: 也:2
: 笔:2
: 四:1
: 本:1
: 还:2
: 三:1
: 枝:1
: 一:1
: 个:1
: 小:1
: 皮:1
: 球:1
: 在:1
呵 java 是用 unicode 所以字串转成了 char array 还是会原来的编码
除非你有改掉他
class TestChinese {
static void main(args) {
def String input = "背书包,上学去,我的书包里,有书也有笔," +
"我有四本书,还有三枝笔,还有一个小皮球,也在我的书包里"
// 转成 char array
char[] ca = input.toCharArray()
// 统计用的 HashMap
def stat = [:]
// 计算次数
ca.each{
if (it in stat.keySet())
stat[it] += 1
else
stat[it] = 1
}
// 印出结果
print stat
}
}
=====================================================
结果
[去:1, 也:2, 笔:2, 还:2, 的:2, 背:1, 球:1, 枝:1, ,:7, 皮:1, 个:1, 在:1, 三
:1, 有:5, 小:1, 上:1, 我:3, 本:1, 包:3, 里:2, 一:1, 学:1, 书:5, 四:1]
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.232.232.203