JavaTM Platform
Standard Ed. 6

java.text
클래스 Bidi

java.lang.Object 
  상위를 확장 java.text.Bidi


public final class Bidi
extends Object

이 클래스는 Unicode 쌍방향 알고리즘을 구현합니다.  

쌍방향 객체는, 텍스트의 작성에 사용된 쌍방향이 늘어놓고 바꾸고의 정보를 제공합니다. 이것은, 아라비아어나 헤브라이어의 텍스트의 적절한 표시 등에 필요합니다. 이러한 언어는, 숫자는 왼쪽에서 오른쪽에 줄서, 그 외의 텍스트의 대부분이 금방 다른 곳으로 줄선다고 하는 것처럼, 방향이 혼재하고 있습니다.  

쌍방향 객체가 생성되면(자), 그 텍스트가 모두 왼쪽에서 오른쪽인가, 또는 모두 오른쪽에서 왼쪽인가에 임해서 조회할 수가 있습니다. 이러한 객체는 큰 일 경량으로, 이 텍스트는 처리가 비교적 용이합니다.  

텍스트의 런이 다수 있는 경우, 개시, 리밋트, 및 런의 레벨을 취득하는 인덱스에 의해, 런의 정보에 액세스 할 수 있습니다. 레벨은 방향과 런 방향의 「상자의 레벨」의 양쪽 모두를 나타냅니다. 홀수의 레벨은 오른쪽에서 왼쪽, 짝수의 레벨은 왼쪽에서 오른쪽입니다. 따라서, 예를 들어, 레벨 0 은 왼쪽에서 오른쪽의 텍스트, 레벨 1 은 오른쪽에서 왼쪽의 텍스트, 레벨 2 는 오른쪽에서 왼쪽의 런에 파묻힌 왼쪽에서 오른쪽의 텍스트를 나타냅니다.

도입된 버젼:
1.4

필드의 개요
static int DIRECTION_DEFAULT_LEFT_TO_RIGHT
          기준 방향이, Unicode 쌍방향 알고리즘에 준거한, 텍스트내의 최초의 강할 방향 문자에 의존하는 것을 나타내는 정수입니다.
static int DIRECTION_DEFAULT_RIGHT_TO_LEFT
          기준 방향이, Unicode 쌍방향 알고리즘에 준거한, 텍스트내의 최초의 강할 방향 문자에 의존하는 것을 나타내는 정수입니다.
static int DIRECTION_LEFT_TO_RIGHT
          기준 방향이 왼쪽에서 오른쪽인 것을 나타내는 정수입니다.
static int DIRECTION_RIGHT_TO_LEFT
          기준 방향이 오른쪽에서 왼쪽인 것을 나타내는 정수입니다.
 
생성자 의 개요
Bidi (AttributedCharacterIterator  paragraph)
          지정한 텍스트의 단락으로부터 쌍방향을 생성합니다.
Bidi (char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags)
          지정된 텍스트, 묻어, 및 방향 정보로부터 쌍방향을 생성합니다.
Bidi (String  paragraph, int flags)
          지정한 텍스트의 단락과 기준 방향으로부터 쌍방향을 생성합니다.
 
메소드의 개요
 boolean baseIsLeftToRight ()
          기준 방향이 왼쪽에서 오른쪽의 경우는 true 를 돌려줍니다.
 Bidi createLineBidi (int lineStart, int lineLimit)
          현재의 쌍방향에 의해 나타내지는 단락내의 텍스트행의 쌍방향 정보를 나타내는 쌍방향 객체를 생성합니다.
 int getBaseLevel ()
          기준 레벨을 돌려줍니다 (왼쪽에서 오른쪽의 경우는 0, 오른쪽에서 왼쪽의 경우는 1).
 int getLength ()
          행의 텍스트의 길이를 돌려줍니다.
 int getLevelAt (int offset)
          오프셋(offset)에 있는 문자의 해결된 레벨을 돌려줍니다.
 int getRunCount ()
          실행하는 레벨수를 돌려줍니다.
 int getRunLevel (int run)
          이 행의 n 번째의 논리 런의 레벨을 돌려줍니다.
 int getRunLimit (int run)
          이 은행내에서 n 번째의 논리 런의 종료 위치의 다음에 있는 문자의 인덱스를, 행의 개시 위치로부터의 오프셋(offset)로서 돌려줍니다.
 int getRunStart (int run)
          이 은행내에서 n 번째의 논리 런의 개시 위치에 있는 문자의 인덱스를, 행의 개시 위치로부터의 오프셋(offset)로서 돌려줍니다.
 boolean isLeftToRight ()
          행이 모두 왼쪽에서 오른쪽의 텍스트이며, 기준 방향이 왼쪽에서 오른쪽의 경우는 true 를 돌려줍니다.
 boolean isMixed ()
          행이 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽이 아닌 경우는 true 를 돌려줍니다.
 boolean isRightToLeft ()
          행이 모두 오른쪽에서 왼쪽의 텍스트이며, 기준 방향이 오른쪽에서 왼쪽의 경우는 true 를 돌려줍니다.
static void reorderVisually (byte[] levels, int levelStart, Object [] objects, int objectStart, int count)
          배열내의 객체를, 그 레벨에 근거해 시각적 순서에 늘어놓고 바꿉니다.
static boolean requiresBidi (char[] text, int start, int limit)
          지정된 텍스트가 쌍방향 해석을 요구하는 경우, true 를 돌려줍니다.
 String toString ()
          데밧깅에 사용하는, 쌍방향의 내부 상태를 표시합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

필드의 상세

DIRECTION_LEFT_TO_RIGHT

public static final int DIRECTION_LEFT_TO_RIGHT
기준 방향이 왼쪽에서 오른쪽인 것을 나타내는 정수입니다.

관련 항목:
정수 필드치

DIRECTION_RIGHT_TO_LEFT

public static final int DIRECTION_RIGHT_TO_LEFT
기준 방향이 오른쪽에서 왼쪽인 것을 나타내는 정수입니다.

관련 항목:
정수 필드치

DIRECTION_DEFAULT_LEFT_TO_RIGHT

public static final int DIRECTION_DEFAULT_LEFT_TO_RIGHT
기준 방향이, Unicode 쌍방향 알고리즘에 준거한, 텍스트내의 최초의 강할 방향 문자에 의존하는 것을 나타내는 정수입니다. 강할 방향 문자가 없는 경우, 기준 방향은 왼쪽에서 오른쪽입니다.

관련 항목:
정수 필드치

DIRECTION_DEFAULT_RIGHT_TO_LEFT

public static final int DIRECTION_DEFAULT_RIGHT_TO_LEFT
기준 방향이, Unicode 쌍방향 알고리즘에 준거한, 텍스트내의 최초의 강할 방향 문자에 의존하는 것을 나타내는 정수입니다. 강할 방향 문자가 없는 경우, 기준 방향은 오른쪽에서 왼쪽입니다.

관련 항목:
정수 필드치
생성자 의 상세

Bidi

public Bidi(String  paragraph,
            int flags)
지정한 텍스트의 단락과 기준 방향으로부터 쌍방향을 생성합니다.

파라미터:
paragraph - 텍스트의 단락
flags - 알고리즘을 제어하는 플래그의 컬렉션. 알고리즘은 플래그 DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_DEFAULT_LEFT_TO_RIGHT, 및 DIRECTION_DEFAULT_RIGHT_TO_LEFT 를 인식한다. 그 외의 값은 예약이 끝난 상태

Bidi

public Bidi(AttributedCharacterIterator  paragraph)
지정한 텍스트의 단락으로부터 쌍방향을 생성합니다.  

텍스트내에 RUN_DIRECTION 속성이 있는 경우는, 이 속성에 의해 기준 방향 (왼쪽에서 오른쪽, 오른쪽에서 왼쪽)이 정해집니다. 없는 경우는, 기준 방향은 Unicode 쌍방향 알고리즘을 사용해 계산됩니다. 텍스트내에 강할 방향 문자가 없는 경우, 왼쪽에서 오른쪽이 디폴트입니다. 이 속성이 있는 경우는, 단락내의 모든 텍스트에 반드시 적용됩니다.  

텍스트내에 BIDI_EMBEDDING 속성이 있는 경우는, 매입 레벨 정보를 나타냅니다. -1 ~ -62 의 0 보다 작은 값은, 레벨의 절대치에서의 오버라이드(override)를 나타냅니다. 1 ~ 62 의 정의 값은, 매입을 나타냅니다. 값이 제로 또는 정의되지 않는 경우는, 기준 방향에 의해 정해지는 기준 매입 레벨이다고 보여집니다.  

텍스트내에 NUMERIC_SHAPING 속성이 있는 경우, 이 속성은 쌍방향 알고리즘의 실행전에, 유럽 숫자를 다른 10 진수로 변환합니다. 이 속성이 있는 경우는, 단락내의 모든 텍스트에 반드시 적용됩니다.

파라미터:
paragraph - 임의의 문자와 단락 속성 정보를 가지는 텍스트의 단락
관련 항목:
TextAttribute.BIDI_EMBEDDING , TextAttribute.NUMERIC_SHAPING , TextAttribute.RUN_DIRECTION

Bidi

public Bidi(char[] text,
            int textStart,
            byte[] embeddings,
            int embStart,
            int paragraphLength,
            int flags)
지정된 텍스트, 묻어, 및 방향 정보로부터 쌍방향을 생성합니다. 매입 배열은 null 입니다. 값이 있는 경우는, 매입 레벨 정보를 나타냅니다. -1 ~ -61 의 0 보다 작은 값은, 레벨의 절대치에서의 오버라이드(override)를 나타냅니다. 1 ~ 61 의 정의 값은, 매입을 나타냅니다. 값이 제로의 경우는, 기준 방향에 의해 정해지는 기준 매입 레벨이다고 보여집니다.

파라미터:
text - 처리하는 텍스트의 단락이 포함되고 있는 배열
textStart - 단락의 개시의 텍스트 배열에 대한 인덱스
embeddings - 단락의 각 문자의 매입치가 포함되고 있는 배열. 이것이 null 의 경우는, 외부 매입 정보가 없는 것이라고 보여지는
embStart - 단락의 선두의 매입 배열에 대한 인덱스
paragraphLength - 텍스트 및 묻어 배열내의 단락의 길이
flags - 알고리즘을 제어하는 플래그의 컬렉션. 알고리즘은 플래그 DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_DEFAULT_LEFT_TO_RIGHT, 및 DIRECTION_DEFAULT_RIGHT_TO_LEFT 를 인식한다. 그 외의 값은 예약이 끝난 상태
메소드의 상세

createLineBidi

public Bidi  createLineBidi(int lineStart,
                           int lineLimit)
현재의 쌍방향에 의해 나타내지는 단락내의 텍스트행의 쌍방향 정보를 나타내는 쌍방향 객체를 생성합니다. 이 호출은, 단락 전체가 1 행의 경우는 요구되지 않습니다.

파라미터:
lineStart - 단락의 개시부터 행의 개시의 오프셋(offset)
lineLimit - 단락의 개시부터 행의 리밋트의 오프셋(offset)

isMixed

public boolean isMixed()
행이 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽이 아닌 경우는 true 를 돌려줍니다. 이 경우, 왼쪽에서 오른쪽과 오른쪽에서 왼쪽의 런이 혼재하고 있는지, 기준 방향이 텍스트의 유일한 런의 방향과 다르고 있습니다.

반환값:
행이 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽의 경우는 true

isLeftToRight

public boolean isLeftToRight()
행이 모두 왼쪽에서 오른쪽의 텍스트이며, 기준 방향이 왼쪽에서 오른쪽의 경우는 true 를 돌려줍니다.

반환값:
행이 모두 왼쪽에서 오른쪽의 텍스트이며, 기준 방향이 왼쪽에서 오른쪽의 경우는 true

isRightToLeft

public boolean isRightToLeft()
행이 모두 오른쪽에서 왼쪽의 텍스트이며, 기준 방향이 오른쪽에서 왼쪽의 경우는 true 를 돌려줍니다.

반환값:
행이 모두 오른쪽에서 왼쪽의 텍스트이며, 기준 방향이 오른쪽에서 왼쪽의 경우는 true

getLength

public int getLength()
행의 텍스트의 길이를 돌려줍니다.

반환값:
행의 텍스트의 길이

baseIsLeftToRight

public boolean baseIsLeftToRight()
기준 방향이 왼쪽에서 오른쪽의 경우는 true 를 돌려줍니다.

반환값:
기준 방향이 왼쪽에서 오른쪽의 경우는 true

getBaseLevel

public int getBaseLevel()
기준 레벨을 돌려줍니다 (왼쪽에서 오른쪽의 경우는 0, 오른쪽에서 왼쪽의 경우는 1).

반환값:
기준 레벨

getLevelAt

public int getLevelAt(int offset)
오프셋(offset)에 있는 문자의 해결된 레벨을 돌려줍니다. 오프셋(offset)가 부일까 라인의 길이 이상인 경우는, 기준 방향 레벨을 돌려줍니다.

파라미터:
offset - 레벨을 돌려주는 문자의 인덱스
반환값:
오프셋(offset)에 있는 문자의 해결된 레벨

getRunCount

public int getRunCount()
실행하는 레벨수를 돌려줍니다.

반환값:
실행하는 레벨수

getRunLevel

public int getRunLevel(int run)
이 행의 n 번째의 논리 런의 레벨을 돌려줍니다.

파라미터:
run - 0 으로 getRunCount() 의 사이에 있는, 런의 인덱스
반환값:
런의 레벨

getRunStart

public int getRunStart(int run)
이 은행내에서 n 번째의 논리 런의 개시 위치에 있는 문자의 인덱스를, 행의 개시 위치로부터의 오프셋(offset)로서 돌려줍니다.

파라미터:
run - 0 으로 getRunCount() 의 사이에 있는, 런의 인덱스
반환값:
런의 개시 위치

getRunLimit

public int getRunLimit(int run)
이 은행내에서 n 번째의 논리 런의 종료 위치의 다음에 있는 문자의 인덱스를, 행의 개시 위치로부터의 오프셋(offset)로서 돌려줍니다. 예를 들어, 행의 최종 런을 위한 행의 길이를 돌려줍니다.

파라미터:
run - 0 으로 getRunCount() 의 사이에 있는, 런의 인덱스
반환값:
런의 리밋트의 제한

requiresBidi

public static boolean requiresBidi(char[] text,
                                   int start,
                                   int limit)
지정된 텍스트가 쌍방향 해석을 요구하는 경우, true 를 돌려줍니다. false 를 돌려주었을 경우는, 텍스트는 왼쪽에서 오른쪽으로 표시됩니다. 그 때, 클라이언트는 쌍방향 객체의 구축을 회피할 수 있습니다. Unicode 의 아라비아어 표시 형식 영역에 있는 텍스트는, 형상과 순서가 표시용으로 되어 있다고 보여져 true 를 돌려주는 원인으로는 되지 않습니다.

파라미터:
text - 테스트 대상의 문자를 포함한 텍스트
start - 테스트 대상의 문자의 범위의 개시 위치
limit - 테스트 대상의 문자의 범위의 리밋트
반환값:
문자의 범위가 쌍방향 해석을 요구하는 경우, true

reorderVisually

public static void reorderVisually(byte[] levels,
                                   int levelStart,
                                   Object [] objects,
                                   int objectStart,
                                   int count)
배열내의 객체를, 그 레벨에 근거해 시각적 순서에 늘어놓고 바꿉니다. 이것은 유틸리티 기능으로, 각 런이 단일 레벨로 텍스트를 포함하는, 텍스트의 런을 논리적 순서로 나타내는 객체의 컬렉션이 있는 경우에 사용합니다. 객체 배열내의,objectStart 로부터 objectStart + countindex 에 있는 요소는, 텍스트의 각 런이, 레벨 배열 (index - objectStart + levelStart) 내의 대응하는 요소에 의해 나타나는 레벨이다고 봐, 시각적 순서에 늘어놓고 바꿀 수 있습니다.

파라미터:
levels - 각 객체의 쌍방향 레벨을 나타내는 배열
levelStart - 레벨 배열내에서의 개시 위치
objects - 시각적 순서에 늘어놓고 바꿀 수 있는 객체의 배열
objectStart - 객체 배열내에서의 개시 위치
count - 늘어놓고 바꾸고 대상의 객체수

toString

public String  toString()
데밧깅에 사용하는, 쌍방향의 내부 상태를 표시합니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 객체의 캐릭터 라인 표현

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 도 참조해 주세요.