0.CharacterIterator介绍
文本遍历应用范围很广,经常用到的有charAt()方法。
一个charAt()方法实例:Java charAt() 方法 | 菜鸟教程
看Demo,了解到另外一个文本遍历的迭代器:CharacterIterator (Java Platform SE 8 )
下面稍加整理一下谷歌翻译的官网介绍:
1.CharacterIterator接口定义了文本双向迭代的协议。迭代器迭代有界字符序列,字符是以GetBeginIndex()返回的值开始,并通过GetEndIndex()-1返回的值继续进行索引。
2. CharacterIterator接口提供方法previous()和next()用于迭代。如果它们将在GetBeginIndex()到getEndIndex()-1的范围之外移动,则返回done,表示迭代器已到达序列的末尾。
1.CharacterIterator遍历
CharacterIterator支持正序、逆序、任意位置文本遍历。
正序
public void traverseForward(CharacterIterator iter) {
for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
processChar(c); }
}
逆序
public void traverseBackward(CharacterIterator iter) {
for(char c = iter.last(); c != CharacterIterator.DONE; c = iter.previous()) {
processChar(c); }
}
任意位置文本遍历
public void traverseOut(CharacterIterator iter, int pos) {
for (char c = iter.setIndex(pos);
c != CharacterIterator.DONE && notBoundary(c);
c = iter.next()) { }
int end = iter.getIndex();
for (char c = iter.setIndex(pos);
c != CharacterIterator.DONE && notBoundary(c);
c = iter.previous()) { }
int start = iter.getIndex();
processSection(start, end); }
2.CharacterIterator实例
逆序遍历
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
public class CharacterIteratorDemo{
public static void main(String[] args){
CharacterIterator it=new StringCharacterIterator("20190326FirSt");
for(char c=it.last();c!=CharacterIterator.DONE;c=it.previous()){
System.out.println(c);}
}
}
正序遍历
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
public class CharacterIteratorDemo{
public static void main(String[] args){
CharacterIterator it=new StringCharacterIterator("20190326FirSt");
for(char c=it.first();c!=CharacterIterator.DONE;c=it.next()){
System.out.println(c);}
}
}