exo5: Add the code that permit to build a word counter.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 5 Apr 2018 13:20:26 +0000 (15:20 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Thu, 5 Apr 2018 13:20:26 +0000 (15:20 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
exo5/Main.java
exo5/test_file.txt [new file with mode: 0644]

index 4075cbc4ed5997f2f9c18bf6b6ec1b59a5fba719..953bdfe46f61bf06b962e85745c9feeacae93d06 100644 (file)
@@ -1,3 +1,7 @@
+import java.io.File;
+import java.util.Scanner;
+import java.io.IOException;
+import java.util.TreeMap;
 
 class Main {
 
 
 class Main {
 
@@ -6,6 +10,26 @@ class Main {
      * @param String[] args main() function arguments array
      */
     public static void main(String[] args) {
      * @param String[] args main() function arguments array
      */
     public static void main(String[] args) {
-
+        TreeMap<String, Integer> tm = new TreeMap<String, Integer>();
+        File f = new File("test_file.txt");
+        try {
+            Scanner sc = new Scanner(f);
+            while (sc.hasNext()) {
+                String wordCursor = sc.next();
+                //NOTE: words comparaison is case sensitive and punctuation aware
+                Integer count = tm.get(wordCursor);
+                if (count == null) {
+                    count = 0;
+                }
+                tm.put(wordCursor, count + 1);
+            }
+            sc.close();
+        }
+        catch (IOException e) {
+            e.printStackTrace();
+        }
+        for (String wordCursor : tm.keySet()) {
+            System.out.println("Word \"" + wordCursor + "\" occured " + tm.get(wordCursor) + " times");
+        }
     }
 }
     }
 }
diff --git a/exo5/test_file.txt b/exo5/test_file.txt
new file mode 100644 (file)
index 0000000..15cb50c
--- /dev/null
@@ -0,0 +1,23 @@
+Je suis très émue de vous dire que j'ai
+bien compris l'autre soir que vous aviez
+toujours une envie folle de me faire
+danser. Je garde le souvenir de votre
+baiser et je voudrais bien que ce soit
+là une preuve que je puisse être aimée
+par vous. Je suis prête à vous montrer mon
+affection toute désintéressée et sans cal-
+cul, et si vous voulez me voir aussi
+vous dévoiler sans artifice mon âme
+toute nue, venez me faire une visite.
+Nous causerons en amis, franchement.
+Je vous prouverai que je suis la femme
+sincère, capable de vous offrir l'affection
+la plus profonde comme la plus étroite
+en amitié, en un mot la meilleure preuve
+dont vous puissiez rêver, puisque votre
+âme est libre. Pensez que la solitude où j'ha-
+bite est bien longue, bien dure et souvent
+difficile. Ainsi en y songeant j'ai l'âme
+grosse. Accourrez donc vite et venez me la
+faire oublier par l'amour où je veux me
+mettre.