JavaTM Platform
Standard Ed. 6

java.text
인터페이스 CharacterIterator

모든 슈퍼 인터페이스:
Cloneable
기존의 서브 인터페이스의 일람:
AttributedCharacterIterator
기존의 구현 클래스의 일람:
Segment , StringCharacterIterator


public interface CharacterIterator
extends Cloneable

이 인터페이스는, 텍스트에 있어서의 쌍방향의 반복의 프로토콜을 정의합니다. 반복자는, 결합된 문자 순서에 대해 반복합니다. 문자는, getBeginIndex()로 반환되는 값으로 시작되어, getEndIndex()-1 로 반환되는 값까지 계속되는 값을 사용해 인덱스 처리됩니다.  

반복자는, 유효 범위가 getBeginIndex() ~ getEndIndex()의 현재의 문자 인덱스를 유지합니다. 값 getEndIndex()가 포함되어 있는 것은, 제로장의 텍스트 범위의 조작을 가능하게 하기 위한(해)와 역사적인 이유에 의합니다. 현재의 인덱스는, getIndex()를 호출하는 것에 의해 검색할 수 있어 setIndex(), first(), 및 last()를 호출하는 것에 의해 직접 설정할 수 있습니다.  

previous() 메소드와 next() 메소드는 반복 처리에 사용됩니다. 이러한 메소드는, getBeginIndex() ~ getEndIndex() -1 의 범위로부터 빗나가도록(듯이) 움직이면(자), DONE 를 돌려주는 것으로, 반복자가 순서의 마지막에 이른 것을 나타냅니다. 또, 다른 메소드로부터 DONE 가 돌려주어졌을 경우는, 현재의 인덱스가 이 범위외에 있는 것을 나타냅니다.

례:

텍스트의 처음부터 끝나의 방향에 더듬습니다.

 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);
     }
 }
 
지정된 텍스트의 위치에서 전방향과 역방향의 양방에 더듬습니다. 이 예에서의 notBoundary()의 호출은, 그 외의 정지 기준을 나타내고 있습니다.
 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);
 }
 

관련 항목:
StringCharacterIterator , AttributedCharacterIterator

필드의 개요
static char DONE
          반복자가 텍스트의 마지막이나 초에 이르렀을 때에 반환되는 정수입니다.
 
메소드의 개요
 Object clone ()
          반복자의 카피를 작성합니다.
 char current ()
          현재 위치 (getIndex()에 의해 반환되는 위치)에 있는 문자를 가져옵니다.
 char first ()
          위치를 getBeginIndex()로 설정해, 그 위치에 있는 문자를 돌려줍니다.
 int getBeginIndex ()
          텍스트의 개시 인덱스를 돌려줍니다.
 int getEndIndex ()
          텍스트의 종료 인덱스를 돌려줍니다.
 int getIndex ()
          현재의 인덱스를 돌려줍니다.
 char last ()
          위치를 getEndIndex()-1 (텍스트가 빈 상태(empty)의 경우는 getEndIndex())로 설정해, 그 위치에 있는 문자를 돌려줍니다.
 char next ()
          반복자의 인덱스를 1 늘려, 새로운 인덱스에 있는 문자를 돌려줍니다.
 char previous ()
          반복자의 인덱스를 1 줄여, 새로운 인덱스에 있는 문자를 돌려줍니다.
 char setIndex (int position)
          위치가 지정된 텍스트의 위치로 설정해, 그 문자를 돌려줍니다.
 

필드의 상세

DONE

static final char DONE
반복자가 텍스트의 마지막이나 초에 이르렀을 때에 반환되는 정수입니다. 값은 '\uFFFF'여, 유효한 Unicode 캐릭터 라인으로 사용할 수 없는 「문자가 아니다」값입니다.

관련 항목:
정수 필드치
메소드의 상세

first

char first()
위치를 getBeginIndex()로 설정해, 그 위치에 있는 문자를 돌려줍니다.

반환값:
텍스트내의 선두 문자. 텍스트가 빈 상태(empty)의 경우는 DONE
관련 항목:
getBeginIndex()

last

char last()
위치를 getEndIndex()-1 (텍스트가 빈 상태(empty)의 경우는 getEndIndex())로 설정해, 그 위치에 있는 문자를 돌려줍니다.

반환값:
텍스트내의 마지막 문자. 텍스트가 빈 상태(empty)의 경우는 DONE
관련 항목:
getEndIndex()

current

char current()
현재 위치 (getIndex()에 의해 반환되는 위치)에 있는 문자를 가져옵니다.

반환값:
현재 위치에 있는 문자. 현재 위치가 텍스트의 마지막을 지나고 있는 경우는 DONE
관련 항목:
getIndex()

next

char next()
반복자의 인덱스를 1 늘려, 새로운 인덱스에 있는 문자를 돌려줍니다. 결과의 인덱스가 getEndIndex()보다 큰지, 거기에 동일한 경우, 현재의 인덱스가 getEndIndex()에 리셋 되어 값 DONE 가 돌려주어집니다.

반환값:
새로운 위치에 있는 문자. 새로운 위치가 텍스트 범위의 마지막을 지나고 있는 경우는 DONE

previous

char previous()
반복자의 인덱스를 1 줄여, 새로운 인덱스에 있는 문자를 돌려줍니다. 현재의 인덱스가 getBeginIndex()의 경우, 인덱스는 getBeginIndex()인 채 변함없이, 값 DONE 가 돌려주어집니다.

반환값:
새로운 위치에 있는 문자. 현재의 위치가 getBeginIndex()에 동일한 경우는 DONE

setIndex

char setIndex(int position)
위치가 지정된 텍스트의 위치로 설정해, 그 문자를 돌려줍니다.

파라미터:
position - 테스트내의 위치. 이 값은, getBeginIndex() ~ getEndIndex()의 범위내에 없으면 안 된다. 무효인 값을 지정하면(자), IllegalArgumentException 가 throw 된다
반환값:
지정된 위치에 있는 문자. 지정된 위치가 getEndIndex()에 동일한 경우는 DONE

getBeginIndex

int getBeginIndex()
텍스트의 개시 인덱스를 돌려줍니다.

반환값:
텍스트가 시작되는 위치의 인덱스

getEndIndex

int getEndIndex()
텍스트의 종료 인덱스를 돌려줍니다. 이 인덱스는, 텍스트의 마지막의 다음의 문자의 인덱스입니다.

반환값:
텍스트내의 마지막 문자의 다음의 인덱스

getIndex

int getIndex()
현재의 인덱스를 돌려줍니다.

반환값:
현재의 인덱스

clone

Object  clone()
반복자의 카피를 작성합니다.

반환값:
이 반복자의 카피

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.