Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

UText Class Reference

Inheritance diagram for UText:

ICU UString List of all members.

Public Types

typedef opIndex charAt
enum  CaseOption { Default = 0, SpecialI = 1 }

Public Member Functions

 this (wchar[] content)
package wchar[] get ()
override int opEquals (Object o)
override int opCmp (Object o)
override uint toHash ()
UString copy ()
UString extract (uint start, uint len=uint.max)
uint codePoints (uint start=0, uint length=uint.max)
bool hasSurrogates (uint start=0, uint length=uint.max)
wchar opIndex (uint index)
uint length ()
int compare (UText other, bool codePointOrder=false)
int compare (wchar[] other, bool codePointOrder=false)
int compareFolded (UText other, CaseOption option=CaseOption.Default)
int compareFolded (wchar[] other, CaseOption option=CaseOption.Default)
bool startsWith (UText other)
bool startsWith (wchar[] chars)
bool endsWith (UText other)
bool endsWith (wchar[] chars)
uint indexOf (wchar c, uint start=0)
uint indexOf (UText other, uint start=0)
uint indexOf (wchar[] chars, uint start=0)
uint lastIndexOf (wchar c, uint start=uint.max)
uint lastIndexOf (UText other, uint start=uint.max)
uint lastIndexOf (wchar[] chars, uint start=uint.max)
UString toLower (UString dst)
UString toLower (UString dst, inout ULocale locale)
UString toUpper (UString dst)
UString toUpper (UString dst, inout ULocale locale)
UString toFolded (UString dst, CaseOption option=CaseOption.Default)
char[] toUtf8 (char[] dst=null)
UText trim ()
UString unEscape ()
uint getCharStart (uint i)
uint getCharLimit (uint i)
private void pinIndex (inout uint x)
private void pinIndices (inout uint start, inout uint length)
private int compareFolded (wchar[] s1, wchar[] s2, CaseOption option=CaseOption.Default)

Static Public Member Functions

static bool isSurrogate (wchar c)
static bool isLeading (wchar c)
static bool isTrailing (wchar c)
static this ()
static ~this ()

Public Attributes

package uint len
package wchar[] content

Static Public Attributes

static FunctionLoader Bind[] targets

Private Types

typedef void * Handle
enum  Error { OK, BufferOverflow = 15 }

Private Member Functions

 this ()

Static Private Member Functions

static void test ()
static bool isError (Error e)
static void testError (Error e, char[] msg)
static char * toString (char[] string)
static wchar * toString (wchar[] string)
static uint length (char *s)
static uint length (wchar *s)
static char[] toArray (char *s)
static wchar[] toArray (wchar *s)

Private Attributes

bool mutable

Static Private Attributes

static void * library

Classes

class  VersionIsolated

Detailed Description

Immutable (read-only) text -- use UString for mutable strings.

Definition at line 652 of file UString.d.


Member Typedef Documentation

typedef opIndex charAt
 

Definition at line 654 of file UString.d.

typedef void* Handle [protected, inherited]
 

Use this for the primary argument-type to most ICU functions

Definition at line 112 of file ICU.d.


Member Enumeration Documentation

enum CaseOption
 

Enumeration values:
Default 
SpecialI 

Definition at line 669 of file UString.d.

enum Error [protected, inherited]
 

ICU error codes (the ones which are referenced)

Enumeration values:
OK 
BufferOverflow 

Definition at line 146 of file ICU.d.


Constructor & Destructor Documentation

static ~this  )  [inline, static]
 

Definition at line 1474 of file UString.d.


Member Function Documentation

this  )  [inline, private]
 

Hidden constructor

Definition at line 681 of file UString.d.

this wchar[]  content  )  [inline]
 

Construct read-only wrapper around the given content

Definition at line 691 of file UString.d.

References content, len, and length().

package wchar [] get  )  [inline]
 

Return the valid content from this UText

Definition at line 718 of file UString.d.

Referenced by USet::addString(), USet::applyPattern(), UNormalize::check(), compare(), UNormalize::compare(), UDomainName::compare(), UNormalize::concatenate(), USet::containsString(), endsWith(), UCollator::equal(), UTransform::execute(), UTimeZone::getDefault(), UCollator::getDisplayName(), UCollator::getRules(), UCollator::getSortKey(), UCollator::greater(), UCollator::greaterOrEqual(), URegex::groups(), UDomainName::IdnToAscii(), UDomainName::IdnToUnicode(), indexOf(), UNormalize::isNormalized(), lastIndexOf(), UNormalize::normalize(), UString::opCat(), UStringPrep::prepare(), USet::removeString(), URegex::replaceAll(), URegex::replaceFirst(), UTransform::setFilter(), USearch::setPattern(), UDecimalFormat::setPattern(), UMessageFormat::setPattern(), UDateFormat::setPattern(), USearch::setText(), URegex::setText(), UBreakIterator::setText(), UString::setTo(), UCollator::setVariableTop(), URegex::split(), startsWith(), UCollator::strcoll(), UDomainName::toAscii(), and UDomainName::toUnicode().

override int opEquals Object  o  )  [inline]
 

Is this UText equal to another?

Definition at line 729 of file UString.d.

override int opCmp Object  o  )  [inline]
 

Compare this UText to another.

Definition at line 744 of file UString.d.

References compare().

override uint toHash  )  [inline]
 

Hash this UText

Definition at line 762 of file UString.d.

UString copy  )  [inline]
 

Clone this UText into a UString

Definition at line 773 of file UString.d.

References UString.

UString extract uint  start,
uint  len = uint.max
[inline]
 

Clone a section of this UText into a UString

Definition at line 784 of file UString.d.

References pinIndices(), and UString.

uint codePoints uint  start = 0,
uint  length = uint.max
[inline]
 

Count unicode code points in the length UChar code units of the string. A code point may occupy either one or two UChar code units. Counting code points involves reading all code units.

Definition at line 799 of file UString.d.

References pinIndices().

Referenced by hasSurrogates().

bool hasSurrogates uint  start = 0,
uint  length = uint.max
[inline]
 

Return an indication whether or not there are surrogate pairs within the string.

Definition at line 812 of file UString.d.

References codePoints(), and pinIndices().

wchar opIndex uint  index  )  [inline]
 

Return the character at the specified position.

Definition at line 824 of file UString.d.

uint length  )  [inline]
 

Return the length of the valid content

Definition at line 837 of file UString.d.

Referenced by UTransform::execute(), UCollator::getSortKey(), UString::realloc(), URegex::replaceAll(), URegex::replaceFirst(), UTransform::setFilter(), USearch::setPattern(), UDecimalFormat::setPattern(), UDateFormat::setPattern(), USearch::setText(), URegex::setText(), UBreakIterator::setText(), UString::setTo(), and this().

int compare UText  other,
bool  codePointOrder = false
[inline]
 

The comparison can be done in code unit order or in code point order. They differ only in UTF-16 when comparing supplementary code points (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).

In code unit order, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.

Definition at line 855 of file UString.d.

References get().

Referenced by opCmp().

int compare wchar[]  other,
bool  codePointOrder = false
[inline]
 

The comparison can be done in code unit order or in code point order. They differ only in UTF-16 when comparing supplementary code points (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).

In code unit order, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.

Definition at line 873 of file UString.d.

int compareFolded UText  other,
CaseOption  option = CaseOption.Default
[inline]
 

The comparison can be done in UTF-16 code unit order or in code point order. They differ only when comparing supplementary code points (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).

In code unit order, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.

Definition at line 891 of file UString.d.

References content.

Referenced by compareFolded(), endsWith(), and startsWith().

int compareFolded wchar[]  other,
CaseOption  option = CaseOption.Default
[inline]
 

The comparison can be done in UTF-16 code unit order or in code point order. They differ only when comparing supplementary code points (U+10000..U+10ffff) to BMP code points near the end of the BMP (i.e., U+e000..U+ffff).

In code unit order, high BMP code points sort after supplementary code points because they are stored as pairs of surrogates which are at U+d800..U+dfff.

Definition at line 909 of file UString.d.

References compareFolded().

bool startsWith UText  other  )  [inline]
 

Does this UText start with specified string?

Definition at line 920 of file UString.d.

References get().

bool startsWith wchar[]  chars  )  [inline]
 

Does this UText start with specified string?

Definition at line 931 of file UString.d.

References compareFolded().

bool endsWith UText  other  )  [inline]
 

Does this UText end with specified string?

Definition at line 944 of file UString.d.

References get().

bool endsWith wchar[]  chars  )  [inline]
 

Does this UText end with specified string?

Definition at line 955 of file UString.d.

References compareFolded().

uint indexOf wchar  c,
uint  start = 0
[inline]
 

Find the first occurrence of a BMP code point in a string. A surrogate code point is found only if its match in the text is not part of a surrogate pair.

Definition at line 970 of file UString.d.

References pinIndex().

Referenced by indexOf().

uint indexOf UText  other,
uint  start = 0
[inline]
 

Find the first occurrence of a substring in a string.

The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text. Otherwise, the substring edge units would be matched against halves of surrogate pairs.

Definition at line 991 of file UString.d.

References get(), and indexOf().

uint indexOf wchar[]  chars,
uint  start = 0
[inline]
 

Find the first occurrence of a substring in a string.

The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text. Otherwise, the substring edge units would be matched against halves of surrogate pairs.

Definition at line 1008 of file UString.d.

References pinIndex().

uint lastIndexOf wchar  c,
uint  start = uint.max
[inline]
 

Find the last occurrence of a BMP code point in a string. A surrogate code point is found only if its match in the text is not part of a surrogate pair.

Definition at line 1025 of file UString.d.

References pinIndex().

Referenced by lastIndexOf().

uint lastIndexOf UText  other,
uint  start = uint.max
[inline]
 

Find the last occurrence of a BMP code point in a string. A surrogate code point is found only if its match in the text is not part of a surrogate pair.

Definition at line 1042 of file UString.d.

References get(), and lastIndexOf().

uint lastIndexOf wchar[]  chars,
uint  start = uint.max
[inline]
 

Find the last occurrence of a substring in a string.

The substring is found at code point boundaries. That means that if the substring begins with a trail surrogate or ends with a lead surrogate, then it is found only if these surrogates stand alone in the text. Otherwise, the substring edge units would be matched against halves of surrogate pairs.

Definition at line 1059 of file UString.d.

References pinIndex().

UString toLower UString  dst  )  [inline]
 

Lowercase the characters into a seperate UString.

Casing is locale-dependent and context-sensitive. The result may be longer or shorter than the original.

Note that the return value refers to the provided destination UString.

Definition at line 1080 of file UString.d.

References Default.

UString toLower UString  dst,
inout ULocale  locale
[inline]
 

Lowercase the characters into a seperate UString.

Casing is locale-dependent and context-sensitive. The result may be longer or shorter than the original.

Note that the return value refers to the provided destination UString.

Definition at line 1097 of file UString.d.

References UString::expand(), UString::format(), and ICU::toString().

UString toUpper UString  dst  )  [inline]
 

Uppercase the characters into a seperate UString.

Casing is locale-dependent and context-sensitive. The result may be longer or shorter than the original.

Note that the return value refers to the provided destination UString.

Definition at line 1120 of file UString.d.

References Default.

UString toUpper UString  dst,
inout ULocale  locale
[inline]
 

Uppercase the characters into a seperate UString.

Casing is locale-dependent and context-sensitive. The result may be longer or shorter than the original.

Note that the return value refers to the provided destination UString.

Definition at line 1137 of file UString.d.

References UString::expand(), UString::format(), and ICU::toString().

UString toFolded UString  dst,
CaseOption  option = CaseOption.Default
[inline]
 

Case-fold the characters into a seperate UString.

Case-folding is locale-independent and not context-sensitive, but there is an option for whether to include or exclude mappings for dotted I and dotless i that are marked with 'I' in CaseFolding.txt. The result may be longer or shorter than the original.

Note that the return value refers to the provided destination UString.

Definition at line 1163 of file UString.d.

References UString::expand(), and UString::format().

char [] toUtf8 char[]  dst = null  )  [inline]
 

Converts a sequence of wchar (UTF-16) to UTF-8 bytes. If the output array is not provided, an array of appropriate size will be allocated and returned. Where the output is provided, it must be large enough to hold potentially four bytes per character for surrogate-pairs or three bytes per character for BMP only. Consider using UConverter where streaming conversions are required.

Returns an array slice representing the valid UTF8 content.

Definition at line 1188 of file UString.d.

References ICU::testError(), and x.

UText trim  )  [inline]
 

Remove leading and trailing whitespace from this UText. Note that we slice the content to remove leading space.

Definition at line 1208 of file UString.d.

UString unEscape  )  [inline]
 

Unescape a string of characters and write the resulting Unicode characters to the destination buffer. The following escape sequences are recognized:

uhhhh 4 hex digits; h in [0-9A-Fa-f] Uhhhhhhhh 8 hex digits xhh 1-2 hex digits x{h...} 1-8 hex digits ooo 1-3 octal digits; o in [0-7] cX control-X; X is masked with 0x1F

as well as the standard ANSI C escapes:

a => U+0007, \b => U+0008, \t => U+0009, \n => U+000A, v => U+000B, \f => U+000C, \r => U+000D, \e => U+001B, \" =U+0022, \' => U+0027, \? => U+003F, \\ => U+005C

Anything else following a backslash is generically escaped. For example, "[a\\-z]" returns "[a-z]".

If an escape sequence is ill-formed, this method returns an empty string. An example of an ill-formed sequence is "\\u" followed by fewer than 4 hex digits.

Definition at line 1257 of file UString.d.

References UString::truncate(), and UString.

static bool isSurrogate wchar  c  )  [inline, static]
 

Is this code point a surrogate (U+d800..U+dfff)?

Definition at line 1286 of file UString.d.

static bool isLeading wchar  c  )  [inline, static]
 

Is this code unit a lead surrogate (U+d800..U+dbff)?

Definition at line 1297 of file UString.d.

static bool isTrailing wchar  c  )  [inline, static]
 

Is this code unit a trail surrogate (U+dc00..U+dfff)?

Definition at line 1308 of file UString.d.

uint getCharStart uint  i  )  [inline]
 

Adjust a random-access offset to a code point boundary at the start of a code point. If the offset points to the trail surrogate of a surrogate pair, then the offset is decremented. Otherwise, it is not modified.

Definition at line 1322 of file UString.d.

uint getCharLimit uint  i  )  [inline]
 

Adjust a random-access offset to a code point boundary after a code point. If the offset is behind the lead surrogate of a surrogate pair, then the offset is incremented. Otherwise, it is not modified.

Definition at line 1340 of file UString.d.

private void pinIndex inout uint  x  )  [inline]
 

Pin the given index to a valid position.

Definition at line 1371 of file UString.d.

Referenced by indexOf(), and lastIndexOf().

private void pinIndices inout uint  start,
inout uint  length
[inline]
 

Pin the given index and length to a valid position.

Definition at line 1383 of file UString.d.

References x.

Referenced by codePoints(), extract(), hasSurrogates(), UString::opCat(), UString::remove(), and UString::setTo().

private int compareFolded wchar[]  s1,
wchar[]  s2,
CaseOption  option = CaseOption.Default
[inline]
 

Helper for comparison methods

Definition at line 1398 of file UString.d.

References ICU::testError(), and x.

static this  )  [inline, static]
 

Definition at line 1464 of file UString.d.

static void test  )  [inline, static, private]
 

Definition at line 1483 of file UString.d.

static bool isError Error  e  )  [inline, static, protected, inherited]
 

Definition at line 156 of file ICU.d.

Referenced by UCollator::getLocale().

static void testError Error  e,
char[]  msg
[inline, static, protected, inherited]
 

Definition at line 174 of file ICU.d.

Referenced by UCalendar::add(), USet::applyPattern(), UChar::charFromName(), UNormalize::check(), URegex::clone(), UNormalize::compare(), UDomainName::compare(), compareFolded(), UConverter::UTranscoder::convert(), UEnumeration::count(), UConverter::decode(), UConverter::encode(), URegex::end(), UTransform::execute(), USearch::first(), UResourceBundle::get(), UCalendar::get(), UCollator::getAttribute(), UResourceBundle::getBinary(), UCollator::getBound(), UChar::getCharName(), UChar::getComment(), UCollator::getContractions(), URegex::getFlags(), UResourceBundle::getInt(), UResourceBundle::getIntVector(), UCalendar::getLimit(), UResourceBundle::getLocale(), UCalendar::getMillis(), UConverter::getName(), UResourceBundle::getNextString(), URegex::getPattern(), UCollator::getShortDefinitionString(), UResourceBundle::getString(), UCollator::getTailoredSet(), UDateFormat::getTwoDigitYearStart(), UCollator::getVariableTop(), URegex::groupCount(), UCalendar::inDaylightTime(), UNormalize::isNormalized(), USearch::last(), URegex::match(), USearch::next(), URegex::next(), UEnumeration::next(), UCollator::normalizeShortDefinitionString(), UDateFormat::parse(), USearch::previous(), URegex::probe(), URegex::replaceAll(), URegex::replaceFirst(), URegex::reset(), UEnumeration::reset(), UCalendar::roll(), UCollator::setAttribute(), USearch::setCollator(), UCalendar::setDate(), UCalendar::setDateTime(), UTransform::setFilter(), USearch::setIterator(), UCalendar::setMillis(), USearch::setOffset(), USearch::setPattern(), UDecimalFormat::setPattern(), UMessageFormat::setPattern(), USearch::setText(), URegex::setText(), UBreakIterator::setText(), UCalendar::setTimeZone(), UDateFormat::setTwoDigitYearStart(), UCollator::setVariableTop(), URegex::split(), URegex::start(), UTransform::this(), UStringPrep::this(), USet::this(), USearch::this(), UResourceBundle::this(), URegex::this(), UNumberFormat::this(), UMessageFormat::this(), UDateFormat::this(), UCollator::this(), UCalendar::this(), UBreakIterator::this(), URuleIterator::this(), and toUtf8().

static char* toString char[]  string  )  [inline, static, protected, inherited]
 

Definition at line 184 of file ICU.d.

Referenced by UChar::charFromName(), UConverter::compareNames(), UCollator::getDisplayName(), UResourceBundle::getResource(), UCollator::getShortDefinitionString(), UResourceBundle::getString(), UCalendar::getTimeZoneName(), UCollator::normalizeShortDefinitionString(), UMessageFormat::setLocale(), UStringPrep::this(), UResourceBundle::this(), UDateFormat::this(), UCollator::this(), UBreakIterator::this(), toLower(), and toUpper().

static wchar* toString wchar[]  string  )  [inline, static, protected, inherited]
 

Definition at line 206 of file ICU.d.

static uint length char *  s  )  [inline, static, protected, inherited]
 

Definition at line 228 of file ICU.d.

References strlen().

Referenced by UConverter::UTranscoder::convert().

static uint length wchar *  s  )  [inline, static, protected, inherited]
 

Definition at line 237 of file ICU.d.

References wcslen().

static char [] toArray char *  s  )  [inline, static, protected, inherited]
 

Definition at line 246 of file ICU.d.

References strlen().

Referenced by UConverter::detectSignature(), UResourceBundle::getKey(), UResourceBundle::getLocale(), UMessageFormat::getLocale(), UCollator::getLocale(), UConverter::getName(), UChar::getPropertyName(), UChar::getPropertyValueName(), and UConverter::opApply().

static wchar [] toArray wchar *  s  )  [inline, static, protected, inherited]
 

Definition at line 257 of file ICU.d.

References wcslen().


Member Data Documentation

package uint len
 

Definition at line 659 of file UString.d.

Referenced by USet::addString(), USet::applyPattern(), UNormalize::check(), UNormalize::compare(), UDomainName::compare(), UNormalize::concatenate(), USet::containsString(), UCollator::equal(), UTransform::execute(), UCollator::getDisplayName(), UCollator::getRules(), UCollator::getSortKey(), UCollator::greater(), UCollator::greaterOrEqual(), UDomainName::IdnToAscii(), UDomainName::IdnToUnicode(), UNormalize::isNormalized(), UNormalize::normalize(), UDateFormat::parse(), UNumberFormat::parseDouble(), UNumberFormat::parseInteger(), UNumberFormat::parseLong(), UStringPrep::prepare(), USet::removeString(), UTransform::setFilter(), UMessageFormat::setPattern(), UCollator::setVariableTop(), UCollator::strcoll(), this(), UDomainName::toAscii(), and UDomainName::toUnicode().

package wchar [] content
 

Definition at line 660 of file UString.d.

Referenced by compareFolded(), UTransform::execute(), UString::opCat(), UDateFormat::parse(), UNumberFormat::parseDouble(), UNumberFormat::parseInteger(), UNumberFormat::parseLong(), UString::setTo(), and this().

bool mutable [private]
 

Definition at line 666 of file UString.d.

void* library [static, private]
 

Bind the ICU functions from a shared library. This is complicated by the issues regarding D and DLLs on the Windows platform

Definition at line 1416 of file UString.d.

FunctionLoader Bind [] targets [static]
 

Initial value:

 
                [
                {cast(void**) &u_strFindFirst,      "u_strFindFirst"}

Definition at line 1443 of file UString.d.


The documentation for this class was generated from the following file:
Generated on Fri Nov 11 18:44:48 2005 for Mango by  doxygen 1.4.0