1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Specialized;
public class StringTokenizer
{
private string token;
private string chain;
private StringCollection tokenizedChain;
private int current;
public StringTokenizer(string chain, string token)
{
this.token = token;
this.chain = chain;
this.current = 0;
tokenizedChain = new StringCollection();
int pos;
if ( (pos = chain.IndexOf(token, 0)) == -1)
{
throw new Exception("Token doesnt exist in specified chain");
}
int last = 0;
while (pos != -1)
{
tokenizedChain.Add(chain.Substring(last, pos - last));
last = pos + 1;
pos = chain.IndexOf(token, last);
}
}
public string nextToken()
{
if (current >= tokenizedChain.Count)
{
throw new ArgumentOutOfRangeException("No more token available!");
}
current++;
return tokenizedChain[current-1];
}
public bool hasMoreToken()
{
return current < tokenizedChain.Count;
}
} |
Partager