home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / JCLASS.BIN / KLG.JAR / jclass / util / JCStringTokenizer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-12-05  |  1.6 KB  |  129 lines

  1. package jclass.util;
  2.  
  3. public class JCStringTokenizer {
  4.    private int index;
  5.    private String string;
  6.    private int length;
  7.    private boolean count = false;
  8.    public boolean strip_esc = true;
  9.    private char[] token;
  10.  
  11.    public JCStringTokenizer(String var1) {
  12.       if (var1 != null) {
  13.          this.string = var1.trim();
  14.          this.length = this.string.length();
  15.       }
  16.  
  17.    }
  18.  
  19.    public static String[] parse(String var0, char var1) {
  20.       JCStringTokenizer var2 = new JCStringTokenizer(var0);
  21.       String[] var3 = new String[var2.countTokens(var1)];
  22.  
  23.       for(int var4 = 0; var4 < var3.length; ++var4) {
  24.          var3[var4] = var2.nextToken(var1);
  25.       }
  26.  
  27.       return var3;
  28.    }
  29.  
  30.    public String nextToken() {
  31.       if (this.string != null && this.index < this.length) {
  32.          int var1;
  33.          for(var1 = this.index; var1 < this.length && Character.isSpace(this.string.charAt(var1)); ++var1) {
  34.          }
  35.  
  36.          this.index = var1;
  37.          if (var1 >= this.length) {
  38.             return null;
  39.          } else {
  40.             if (!this.count) {
  41.                this.token = new char[this.length + 1];
  42.             }
  43.  
  44.             var1 = this.index;
  45.  
  46.             for(int var2 = 0; var1 < this.length && !Character.isSpace(this.string.charAt(var1)); ++var1) {
  47.                if (!this.count) {
  48.                   this.token[var2++] = this.string.charAt(var1);
  49.                }
  50.             }
  51.  
  52.             this.index = var1 + 1;
  53.             return !this.count ? (new String(this.token)).trim() : null;
  54.          }
  55.       } else {
  56.          return null;
  57.       }
  58.    }
  59.  
  60.    public String nextToken(char var1) {
  61.       if (this.string != null && this.index < this.length) {
  62.          if (!this.count) {
  63.             this.token = new char[this.length + 1];
  64.          }
  65.  
  66.          int var2 = this.index;
  67.  
  68.          int var3;
  69.          for(var3 = 0; var2 < this.length; ++var3) {
  70.             if (var2 + 1 < this.length && this.string.charAt(var2) == '\\') {
  71.                if (!this.strip_esc) {
  72.                   if (this.token != null) {
  73.                      this.token[var3++] = this.string.charAt(var2);
  74.                      ++var2;
  75.                      this.token[var3] = this.string.charAt(var2);
  76.                   }
  77.                } else {
  78.                   ++var2;
  79.                   if (!this.count) {
  80.                      if (this.string.charAt(var2) == 'n') {
  81.                         this.token[var3] = '\n';
  82.                      } else {
  83.                         this.token[var3] = this.string.charAt(var2);
  84.                      }
  85.                   }
  86.                }
  87.             } else {
  88.                if (this.string.charAt(var2) == var1) {
  89.                   break;
  90.                }
  91.  
  92.                if (!this.count) {
  93.                   this.token[var3] = this.string.charAt(var2);
  94.                }
  95.             }
  96.  
  97.             ++var2;
  98.          }
  99.  
  100.          this.index = var2 + 1;
  101.          return !this.count && var3 > 0 ? new String(this.token, 0, var3) : null;
  102.       } else {
  103.          return null;
  104.       }
  105.    }
  106.  
  107.    public int countTokens(char var1) {
  108.       int var3 = this.index;
  109.       this.count = true;
  110.  
  111.       int var2;
  112.       for(var2 = 0; this.index < this.length; ++var2) {
  113.          this.nextToken(var1);
  114.       }
  115.  
  116.       this.index = var3;
  117.       this.count = false;
  118.       return var2;
  119.    }
  120.  
  121.    public boolean hasMoreTokens() {
  122.       return this.index < this.length;
  123.    }
  124.  
  125.    public int getPosition() {
  126.       return this.index;
  127.    }
  128. }
  129.