//CYCLONE MATRIX HOST NODE APPLICATION
//Hermann L. Johnson, 2019
//Free for unmodified distribution and non-commercial use.

import java.io.*;

public class TrueStringTokenizer {

   private String delimiter, toTokenize;
   private boolean hasMoreTokensVar;

   public TrueStringTokenizer(String toTokenize, String delimiter) {

       this.toTokenize = toTokenize;
       this.delimiter = delimiter;
       while(toTokenize.startsWith(delimiter))
           toTokenize = toTokenize.substring(delimiter.length(),
                                             toTokenize.length());
       if(toTokenize.length()!=0)
           hasMoreTokensVar = true;
       else hasMoreTokensVar = false;

   }

   public boolean hasMoreTokens() {

       return hasMoreTokensVar;

   }

   public void addToString(String toAdd) {
       toTokenize = toTokenize + toAdd;
       if(toTokenize.length()>0) hasMoreTokensVar = true;
   }

   public String getRemainder() {
       return toTokenize;
   }

   public String nextToken() {

       String returnString;
       if(toTokenize.indexOf(delimiter)==-1) {
           hasMoreTokensVar = false;
           return toTokenize;
       }
       returnString = toTokenize.substring(0,toTokenize.indexOf(delimiter));

       toTokenize = toTokenize.substring((toTokenize.indexOf(delimiter)+
                    delimiter.length()), toTokenize.length());
       while(toTokenize.startsWith(delimiter))
           toTokenize = toTokenize.substring(delimiter.length(),
                                             toTokenize.length());
       if(toTokenize.length()==0)
           hasMoreTokensVar = false;

       return returnString;

   }

}