KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > rero > util > hidden > MyTokenizer


1 package rero.util.hidden;
2
3 import java.util.*;
4
5 public class MyTokenizer
6 {
7      String JavaDoc string;
8      String JavaDoc token;
9      int end = 0, start = 0;
10      int count;
11
12      public String JavaDoc nextToken()
13      {
14         if ((end + token.length()) >= string.length())
15         {
16            return string.substring(start, string.length());
17         }
18
19         while (end < string.length() && !string.substring(end, end + token.length()).equals(token))
20         {
21            if ((end + token.length()) >= string.length())
22            {
23               return string.substring(start, string.length());
24            }
25            end++;
26         }
27
28         int multiple = 0;
29         for (int x = end; string.substring(x, x + token.length()).equals(token); x++)
30         {
31            multiple++;
32            if ((end + (token.length() * multiple)) >= string.length())
33            {
34               return string.substring(start, string.length() - (token.length() * multiple));
35            }
36         }
37
38         String JavaDoc value = string.substring(start, end);
39         start = end + (token.length() * multiple);
40         end = end + (token.length() * multiple);
41
42         return value;
43      }
44
45      public MyTokenizer (String JavaDoc s, String JavaDoc t)
46      {
47         string = new String JavaDoc(s);
48         token = t;
49
50         while ((start+token.length()) < string.length() && string.substring(start, start + token.length()).equals(token))
51         {
52            start++;
53            end++;
54         }
55
56         int c = start;
57         count = 1;
58         while ((c + token.length()) < string.length())
59         {
60            if ((string.substring(c, c + token.length()).equals(token)))
61            {
62               count++;
63               while ((c + token.length()) < string.length() && (string.substring(c, c + token.length()).equals(token)))
64               {
65                 c++;
66               }
67            }
68            c++;
69         }
70         if (s.length() == 0)
71         {
72            count = 0;
73         }
74      }
75
76      public int countTokens ()
77      {
78         return count;
79      }
80 }
81
Popular Tags