diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/alice/test/codesegment/local/wordcount/WordCount.java	Wed Apr 16 18:26:07 2014 +0900
@@ -0,0 +1,47 @@
+package alice.test.codesegment.local.wordcount;
+
+import alice.codesegment.CodeSegment;
+import alice.datasegment.CommandType;
+import alice.datasegment.Receiver;
+
+public class WordCount extends CodeSegment{
+	
+	private Receiver info1 = ids.create(CommandType.TAKE);
+	
+	public WordCount(){
+		info1.setKey("array");
+	}
+
+	@Override
+	public void run() {
+		Range r = info1.asClass(Range.class);
+		int word_flag = 0;
+	    int word_num = 0;
+	    int line_num = 0;
+	    int i = 0;
+		for (; i < r.array.length; i++) {
+			if (r.array[i] == 0x20) { // 空白                                                                                                                                
+				word_flag = 1;
+			} else if (r.array[i] == 0x0A) { // 改行
+				line_num += 1;
+				word_flag = 1;
+			} else {
+				word_num += word_flag;
+				word_flag = 0;
+			}
+		}
+		word_num += word_flag;
+		if (r.nextchar!='\0'){ // null means last block
+			if ((r.array[i-1] == 0x0A||r.array[i-1] == 0x20) &&
+					(r.nextchar == 0x0A||r.nextchar == 0x20)){
+				word_num--;
+			}
+		}
+		
+		Result result = new Result(line_num,word_num);
+		ods.put("result", result);
+		recycle();//new WordCount();
+		
+	}
+
+}