1 package rero.util.hidden; 2 3 import java.util.*; 4 5 public class MyTokenizer 6 { 7 String string; 8 String token; 9 int end = 0, start = 0; 10 int count; 11 12 public String 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 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 s, String t) 46 { 47 string = new String (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 |