⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringtokenizer.java

📁 一个rpg的游戏。。源码 要学习的朋友可以来下载
💻 JAVA
字号:

package org.gamecollege.j2me.rpg;

import java.util.*;

public class StringTokenizer implements Enumeration {

	private void setMaxDelimChar() {
		if (delimiters == null) {
			maxDelimChar = '\0';
			return;
		}
		char c = '\0';
		for (int i = 0; i < delimiters.length(); i++) {
			char c1 = delimiters.charAt(i);
			if (c < c1)
				c = c1;
		}

		maxDelimChar = c;
	}

	public StringTokenizer(String s, String s1, boolean flag) {
		currentPosition = 0;
		newPosition = -1;
		delimsChanged = false;
		str = s;
		maxPosition = s.length();
		delimiters = s1;
		retDelims = flag;
		setMaxDelimChar();
	}

	public StringTokenizer(String s, String s1) {
		this(s, s1, false);
	}

	public StringTokenizer(String s) {
		this(s, " \t\n\r\f", false);
	}

	private int skipDelimiters(int i) {
		if (delimiters == null)
			throw new NullPointerException();
		int j;
		for (j = i; !retDelims && j < maxPosition; j++) {
			char c = str.charAt(j);
			if (c > maxDelimChar || delimiters.indexOf(c) < 0)
				break;
		}

		return j;
	}

	private int scanToken(int i) {
		int j;
		for (j = i; j < maxPosition; j++) {
			char c = str.charAt(j);
			if (c <= maxDelimChar && delimiters.indexOf(c) >= 0)
				break;
		}

		if (retDelims && i == j) {
			char c1 = str.charAt(j);
			if (c1 <= maxDelimChar && delimiters.indexOf(c1) >= 0)
				j++;
		}
		return j;
	}

	public boolean hasMoreTokens() {
		newPosition = skipDelimiters(currentPosition);
		return newPosition < maxPosition;
	}

	public String nextToken() {
		currentPosition = newPosition < 0 || delimsChanged ? skipDelimiters(currentPosition)
				: newPosition;
		delimsChanged = false;
		newPosition = -1;
		if (currentPosition >= maxPosition) {
			throw new NoSuchElementException();
		} else {
			int i = currentPosition;
			currentPosition = scanToken(currentPosition);
			return str.substring(i, currentPosition);
		}
	}

	public String nextToken(String s) {
		delimiters = s;
		delimsChanged = true;
		setMaxDelimChar();
		return nextToken();
	}

	public boolean hasMoreElements() {
		return hasMoreTokens();
	}

	public Object nextElement() {
		return nextToken();
	}

	public int countTokens() {
		int i = 0;
		for (int j = currentPosition; j < maxPosition;) {
			j = skipDelimiters(j);
			if (j >= maxPosition)
				break;
			j = scanToken(j);
			i++;
		}

		return i;
	}

	private int currentPosition;

	private int newPosition;

	private int maxPosition;

	private String str;

	private String delimiters;

	private boolean retDelims;

	private boolean delimsChanged;

	private char maxDelimChar;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -