String

文字列型です。

Stringを明示するほか、文字列リテラルを利用することで生成されます。

短い文字列はメンバの配列に入れることで効率化が図られています。

また、ほとんどの組み込み型には文字列を返す.to_sという関数が定義されており、.pで出力する際にはその値が用いられます。 ユーザー定義型に関しても.to_sをオーバーロードすることで同じように扱うことができます。

Example

C++

void exec_xtal(){
    StringPtr str1("foo");
    StringPtr str2(xnew<String>("bar"));
    str1->p();
    str2->p();
    StringPtr str(str1->cat(str2));
    str->p();
    StringPtr num(AnyPtr(100)->to_s());
    num->p();
}

Xtal

str1 : "foo";
str2 : "bar";
str1.p;
str2.p;
str : str1~str2;
str.p;
num : 100.to_s();
num->p();

Output

foo
bar
foobar
100

Method

XtalC++name description
oo(constructor) インスタンス生成
xoc_str C文字列を返す
xodata 文字列の先頭アドレスを返す
xodata_size マルチバイト文字を考慮せずサイズを返す
oolength マルチバイト文字を考慮した文字列長を返す
ooclone 浅いコピー
xointern 一意化した文字列を返す
xois_interned 一意化されているかどうか
xocat 引数と連結した文字列を返す
oois_ch 1文字文字列かどうか
xois_empty 空文字列かどうか
xoempty is_emptyと同一
ooascii 1文字文字列の場合そのasciiコードを返す
oxeach イテレータを返す
ooscan 文字列をスキャンする
oosplit 文字列を分割し、Iteratorを返す
xomatch_cpp マッチするかどうか
oxmatch(Xtal) matchメソッドを呼んだ後のExecutorを返す
oogsub マッチする部分を置き換えた文字列を返す
oosub 最初にマッチする部分を置き換えた文字列を返す

Xtal operator

operator () 自分自身を返す
operator .. 範囲生成
operator ~ 文字列連結
operator ~= 文字列連結代入
operator == 辞書順で比較
operator < 辞書順で比較
operator in 1文字文字列のみに有効、ChRange内かどうかを返す

Tips

イテレート

Stringのイテレータはマルチバイト文字も考慮した1文字ずつのアクセスを提供します。

str : "いろはabc";
str{
    it.p;
}

Output

い
ろ
は
a
b
c

インデックスアクセス

インデックスを直接指定して文字を得る手段が用意されていないため、まず一文字文字列の配列に変換してからアクセスすることとなります。

その際、マルチバイト文字が考慮されるため、例えば「いろはabc」という文字列があったら、[い, ろ, は, a, b, c]という風に配列化されます。

str : "いろはabc";
stra : str[];
stra.p;
stra[3].p;
stra[1].p;

Output

[い, ろ, は, a, b, c]
a
ろ
reference/string.txt · 最終更新: 2012/08/21 22:37 by sukai
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0