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

📄 stringcharacteriterator.java

📁 java源代码 请看看啊 提点宝贵的意见
💻 JAVA
字号:
/* * @(#)StringCharacterIterator.java	1.20 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *//* * (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved * (C) Copyright IBM Corp. 1996 - 1998 - All Rights Reserved * * The original version of this source code and documentation * is copyrighted and owned by Taligent, Inc., a wholly-owned * subsidiary of IBM. These materials are provided under terms * of a License Agreement between Taligent and Sun. This technology * is protected by multiple US and International patents. * * This notice and attribution to Taligent may not be removed. * Taligent is a registered trademark of Taligent, Inc. * */package java.text;/** * <code>StringCharacterIterator</code> implements the * <code>CharacterIterater</code> protocol for a <code>String</code>. * The <code>StringCharacterIterator</code> class iterates over the * entire <code>String</code>. * * @see CharacterIterator */public final class StringCharacterIterator implements CharacterIterator{    private String text;    private int begin;    private int end;    // invariant: begin <= pos <= end    private int pos;    /**     * Constructs an iterator with an initial index of 0.     */    public StringCharacterIterator(String text)    {        this(text, 0);    }    /**     * Constructs an iterator with the specified initial index.     *     * @param  text   The String to be iterated over     * @param  pos    Initial iterator position     */    public StringCharacterIterator(String text, int pos)    {    this(text, 0, text.length(), pos);    }    /**     * Constructs an iterator over the given range of the given string, with the     * index set at the specified position.     *     * @param  text   The String to be iterated over     * @param  begin  Index of the first character     * @param  end    Index of the character following the last character     * @param  pos    Initial iterator position     */    public StringCharacterIterator(String text, int begin, int end, int pos) {        if (text == null)            throw new NullPointerException();        this.text = text;        if (begin < 0 || begin > end || end > text.length())            throw new IllegalArgumentException("Invalid substring range");        if (pos < begin || pos > end)            throw new IllegalArgumentException("Invalid position");        this.begin = begin;        this.end = end;        this.pos = pos;    }    /**     * Reset this iterator to point to a new string.  This package-visible     * method is used by other java.text classes that want to avoid allocating     * new StringCharacterIterator objects every time their setText method     * is called.     *     * @param  text   The String to be iterated over     * @since 1.2     */    public void setText(String text) {        if (text == null)            throw new NullPointerException();        this.text = text;        this.begin = 0;        this.end = text.length();        this.pos = 0;    }    /**     * Implements CharacterIterator.first() for String.     * @see CharacterIterator#first     */    public char first()    {        pos = begin;        return current();    }    /**     * Implements CharacterIterator.last() for String.     * @see CharacterIterator#last     */    public char last()    {        if (end != begin) {            pos = end - 1;        } else {            pos = end;        }        return current();     }    /**     * Implements CharacterIterator.setIndex() for String.     * @see CharacterIterator#setIndex     */    public char setIndex(int p)    {    if (p < begin || p > end)            throw new IllegalArgumentException("Invalid index");        pos = p;        return current();    }    /**     * Implements CharacterIterator.current() for String.     * @see CharacterIterator#current     */    public char current()    {        if (pos >= begin && pos < end) {            return text.charAt(pos);        }        else {            return DONE;        }    }    /**     * Implements CharacterIterator.next() for String.     * @see CharacterIterator#next     */    public char next()    {        if (pos < end - 1) {            pos++;            return text.charAt(pos);        }        else {            pos = end;            return DONE;        }    }    /**     * Implements CharacterIterator.previous() for String.     * @see CharacterIterator#previous     */    public char previous()    {        if (pos > begin) {            pos--;            return text.charAt(pos);        }        else {            return DONE;        }    }    /**     * Implements CharacterIterator.getBeginIndex() for String.     * @see CharacterIterator#getBeginIndex     */    public int getBeginIndex()    {        return begin;    }    /**     * Implements CharacterIterator.getEndIndex() for String.     * @see CharacterIterator#getEndIndex     */    public int getEndIndex()    {        return end;    }    /**     * Implements CharacterIterator.getIndex() for String.     * @see CharacterIterator#getIndex     */    public int getIndex()    {        return pos;    }    /**     * Compares the equality of two StringCharacterIterator objects.     * @param obj the StringCharacterIterator object to be compared with.     * @return true if the given obj is the same as this     * StringCharacterIterator object; false otherwise.     */    public boolean equals(Object obj)    {        if (this == obj)            return true;        if (!(obj instanceof StringCharacterIterator))            return false;        StringCharacterIterator that = (StringCharacterIterator) obj;        if (hashCode() != that.hashCode())            return false;        if (!text.equals(that.text))            return false;        if (pos != that.pos || begin != that.begin || end != that.end)            return false;        return true;    }    /**     * Computes a hashcode for this iterator.     * @return A hash code     */    public int hashCode()    {        return text.hashCode() ^ pos ^ begin ^ end;    }    /**     * Creates a copy of this iterator.     * @return A copy of this     */    public Object clone()    {        try {            StringCharacterIterator other            = (StringCharacterIterator) super.clone();            return other;        }        catch (CloneNotSupportedException e) {            throw new InternalError();        }    }}

⌨️ 快捷键说明

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