home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / util / StringTokenizer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.8 KB  |  132 lines

  1. package java.util;
  2.  
  3. public class StringTokenizer implements Enumeration {
  4.    private int currentPosition;
  5.    private int newPosition;
  6.    private int maxPosition;
  7.    private String str;
  8.    private String delimiters;
  9.    private boolean retDelims;
  10.    private boolean delimsChanged;
  11.    private char maxDelimChar;
  12.  
  13.    private void setMaxDelimChar() {
  14.       if (this.delimiters == null) {
  15.          this.maxDelimChar = 0;
  16.       } else {
  17.          char var1 = 0;
  18.  
  19.          for(int var2 = 0; var2 < this.delimiters.length(); ++var2) {
  20.             char var3 = this.delimiters.charAt(var2);
  21.             if (var1 < var3) {
  22.                var1 = var3;
  23.             }
  24.          }
  25.  
  26.          this.maxDelimChar = var1;
  27.       }
  28.    }
  29.  
  30.    public StringTokenizer(String var1, String var2, boolean var3) {
  31.       this.currentPosition = 0;
  32.       this.newPosition = -1;
  33.       this.delimsChanged = false;
  34.       this.str = var1;
  35.       this.maxPosition = var1.length();
  36.       this.delimiters = var2;
  37.       this.retDelims = var3;
  38.       this.setMaxDelimChar();
  39.    }
  40.  
  41.    public StringTokenizer(String var1, String var2) {
  42.       this(var1, var2, false);
  43.    }
  44.  
  45.    public StringTokenizer(String var1) {
  46.       this(var1, " \t\n\r\f", false);
  47.    }
  48.  
  49.    private int skipDelimiters(int var1) {
  50.       if (this.delimiters == null) {
  51.          throw new NullPointerException();
  52.       } else {
  53.          int var2;
  54.          for(var2 = var1; !this.retDelims && var2 < this.maxPosition; ++var2) {
  55.             char var3 = this.str.charAt(var2);
  56.             if (var3 > this.maxDelimChar || this.delimiters.indexOf(var3) < 0) {
  57.                break;
  58.             }
  59.          }
  60.  
  61.          return var2;
  62.       }
  63.    }
  64.  
  65.    private int scanToken(int var1) {
  66.       int var2;
  67.       for(var2 = var1; var2 < this.maxPosition; ++var2) {
  68.          char var3 = this.str.charAt(var2);
  69.          if (var3 <= this.maxDelimChar && this.delimiters.indexOf(var3) >= 0) {
  70.             break;
  71.          }
  72.       }
  73.  
  74.       if (this.retDelims && var1 == var2) {
  75.          char var4 = this.str.charAt(var2);
  76.          if (var4 <= this.maxDelimChar && this.delimiters.indexOf(var4) >= 0) {
  77.             ++var2;
  78.          }
  79.       }
  80.  
  81.       return var2;
  82.    }
  83.  
  84.    public boolean hasMoreTokens() {
  85.       this.newPosition = this.skipDelimiters(this.currentPosition);
  86.       return this.newPosition < this.maxPosition;
  87.    }
  88.  
  89.    public String nextToken() {
  90.       this.currentPosition = this.newPosition >= 0 && !this.delimsChanged ? this.newPosition : this.skipDelimiters(this.currentPosition);
  91.       this.delimsChanged = false;
  92.       this.newPosition = -1;
  93.       if (this.currentPosition >= this.maxPosition) {
  94.          throw new NoSuchElementException();
  95.       } else {
  96.          int var1 = this.currentPosition;
  97.          this.currentPosition = this.scanToken(this.currentPosition);
  98.          return this.str.substring(var1, this.currentPosition);
  99.       }
  100.    }
  101.  
  102.    public String nextToken(String var1) {
  103.       this.delimiters = var1;
  104.       this.delimsChanged = true;
  105.       this.setMaxDelimChar();
  106.       return this.nextToken();
  107.    }
  108.  
  109.    public boolean hasMoreElements() {
  110.       return this.hasMoreTokens();
  111.    }
  112.  
  113.    public Object nextElement() {
  114.       return this.nextToken();
  115.    }
  116.  
  117.    public int countTokens() {
  118.       int var1 = 0;
  119.  
  120.       for(int var2 = this.currentPosition; var2 < this.maxPosition; ++var1) {
  121.          var2 = this.skipDelimiters(var2);
  122.          if (var2 >= this.maxPosition) {
  123.             break;
  124.          }
  125.  
  126.          var2 = this.scanToken(var2);
  127.       }
  128.  
  129.       return var1;
  130.    }
  131. }
  132.