Mercurial > hg > Members > tatsuki > Alice
comparison src/main/java/alice/test/codesegment/local/wordcount/WordCount.java @ 345:8f71c3e6f11d
Change directory structure Maven standard
author | sugi |
---|---|
date | Wed, 16 Apr 2014 18:26:07 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
344:9f97ec18f8c5 | 345:8f71c3e6f11d |
---|---|
1 package alice.test.codesegment.local.wordcount; | |
2 | |
3 import alice.codesegment.CodeSegment; | |
4 import alice.datasegment.CommandType; | |
5 import alice.datasegment.Receiver; | |
6 | |
7 public class WordCount extends CodeSegment{ | |
8 | |
9 private Receiver info1 = ids.create(CommandType.TAKE); | |
10 | |
11 public WordCount(){ | |
12 info1.setKey("array"); | |
13 } | |
14 | |
15 @Override | |
16 public void run() { | |
17 Range r = info1.asClass(Range.class); | |
18 int word_flag = 0; | |
19 int word_num = 0; | |
20 int line_num = 0; | |
21 int i = 0; | |
22 for (; i < r.array.length; i++) { | |
23 if (r.array[i] == 0x20) { // 空白 | |
24 word_flag = 1; | |
25 } else if (r.array[i] == 0x0A) { // 改行 | |
26 line_num += 1; | |
27 word_flag = 1; | |
28 } else { | |
29 word_num += word_flag; | |
30 word_flag = 0; | |
31 } | |
32 } | |
33 word_num += word_flag; | |
34 if (r.nextchar!='\0'){ // null means last block | |
35 if ((r.array[i-1] == 0x0A||r.array[i-1] == 0x20) && | |
36 (r.nextchar == 0x0A||r.nextchar == 0x20)){ | |
37 word_num--; | |
38 } | |
39 } | |
40 | |
41 Result result = new Result(line_num,word_num); | |
42 ods.put("result", result); | |
43 recycle();//new WordCount(); | |
44 | |
45 } | |
46 | |
47 } |