![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
BREW には、シングルバイト文字またはマルチバイト文字を表す char 型と、 BREW 独自の 2 バイト文字を表す AECHAR 型があります。 SophiaFramewok では、これら 2 種類の文字型をそれぞれ AChar 型、WChar 型として定義しています。
文字列を表すクラスには、AChar 型の文字で構成される SFXAnsiString と、 WChar 型の文字で構成される SFXWideString の 2 種類があります。
また、文字列を変換したり、種類を判定するための文字列処理クラスが 3 種類提供されています。
表 13.2. 文字列処理クラス
| クラス名 | 解説 |
|---|---|
| SFXAscii | ASCII 文字列特有の処理を行うクラスです。 |
| SFXShiftJIS | Shift_JIS エンコード文字列特有の処理を行うクラスです。 |
| SFXTextEncoding | 文字コード変換のためのクラスです。 |
例 13.1. 定義
SFXAnsiString str1("http://");
SFXAnsiString str2("www.s-cradle.com");
SFXAnsiString str3(str1);
SFXAnsiString str4;
変数 str1, str2, str3, str4 を文字列クラスのオブジェクトとして定義しています。
str1 は "http://"、str2 は "www.s-cradle.com" という文字列を表します。
str3 は str1 と同じ文字列 ( "http://" ) になります。
str4 は空の文字列です。
例 13.2. 連結
SFXAnsiString str1("http://");
SFXAnsiString str2("www.s-cradle.com");
SFXAnsiString str3;
// str3 は "http://www.s-cradle.com"
str3 = str1 + str2;
// str3 = "http://www.s-cradle.com/index.html"
str3 += "/index.html";
例 13.3. 挿入 1
SFXAnsiString str3("http://www.s-cradle.com/index.html");
SFXAnsiString str4;
// str4 は "http://www.s-cradle.com/sophiaframework/index.html"
str4 = str3.Insert(23, "/sophiaframework");
例 13.4. 挿入 2
// 以下の方法でも同じ結果が得られる SFXAnsiString str1("/sophiaframework"); SFXAnsiString str3("http://www.s-cradle.com/index.html"); SFXAnsiString str4; // 引数を SFXAnsiString 型にしてもよい str4 = str3.Insert(23, str1);
![]() |
注意 |
|---|---|
str3 は変更されません。 | |
例 13.5. 一部削除
SFXAnsiString str4("http://www.s-cradle.com/sophiaframework/index.html");
// str4 = "http://www.s-cradle.com/index.html"
str4 = str4.Remove(23, 39);
例 13.6. 全て削除
SFXAnsiString str4("http://www.s-cradle.com/index.html");
// str4 = "" ( 空文字列 )
str4.Clear();
例 13.7. 長さの取得
SFXAnsiString str4("http://www.s-cradle.com/index.html");
// length = 34
SInt32 length = str4.GetLengthCString();
例 13.8. 末尾の削除
SFXAnsiString str4("http://www.s-cradle.com/index.html");
// str4 の長さを取得する
SInt32 length = str4.GetLengthCString();
// str4 は "http://www.s-cradle.com"
str4 = str4.Remove(length - 11, length);
例 13.9. 代入( コピー )
SFXAnsiString str1;
SFXAnsiString str2("abc");
SFXAnsiString str3;
// str1 = "http://www.s-cradle.com";
str1 = "http://www.s-cradle.com";
// str3 = "abc"
str3 = str2;
例 13.10. 文字の get / set
SFXAnsiString str1("http://www.s-cradle.com/index1.html");
// character = '1'
AChar character = str1[29];
// str1 の後半 = "index2.html"
str1[29] = '2';
例 13.11. 部分抜き出し
SFXAnsiString str1("http://www.s-cradle.com/index.html");
SFXAnsiString str2;
// str2 = "www.s-cradle.com"
str2 = str1.Substring(7, 23);
例 13.12. 検索
SFXAnsiString str1("http://www.s-cradle.com/index.html");
SInt32 i = str1.FirstIndexOf("//"); // i = 5
SInt32 j = str1.FirstIndexOf("~"); // ~ は無いので j = -1
SInt32 k = str1.FirstIndexOf("/", 7); // 7 文字目から探し始めるので k = 23
SInt32 m = str1.LastIndexOf("/"); // m = 23
例 13.13. URL の編集
SFXAnsiString str1("http://www.s-cradle.com/index.html");
SInt32 m = str1.LastIndexOf("/"); // m = 23
// str1 は "http://www.s-cradle.com"
str1.Remove(m, str1.GetLength()); // 末尾を削除する
// str1 は "http://www.s-cradle.com/file.xml"
str1 += "/file.xml";
例 13.14. 置換
SFXAnsiString str3("x < y & y < z");
// すべての "<" を "<" に置換する
str3 = str3.Replace("<", "<");
// すべての "&" を "&" に置換する
str3 = str3.Replace("&", "&");
// 下記のように記述してもよい
// str3 = str3.Replace("<", "<").Replace("&", "&");
例 13.15. 比較
if (str1 == str2) {
// str1 と str2 が等しいとき
// 処理内容を記述する
}
if (str1 == "abc") {
// str1 が "abc" のとき
// 処理内容を記述する
}
if (str1.Equals("abc", true)) {
// str1 が "abc" のとき( 大文字小文字は区別する )
// 処理内容を記述する
}
if (str1.Equals("abc", false)) {
// str1 が "abc" のとき( 大文字小文字を区別しない )
// 処理内容を記述する
}
if (str1.StartsWith("http://")) {
// str1 が "http://" で始まるとき
// 処理内容を記述する
}
例 13.16. C 言語文字列 ( ポインター ) の取得
// ACharPtr 型を引数にとる関数
Void func(ACharPtr arg);
func(str1.GetCString());
例 13.18. 空文字列のチェック
// 例: SFXAnsiString を引数にとる関数 Void func(SFXAnsiString str) { if (str.IsEmpty()) { // str が空文字列のとき return; // 何も処理しない } // 関数の本体の処理を記述する }
例 13.19. 空白の削除
SFXAnsiString string = " abc"; // string = " abc" // Trim() 関数は新しい文字列を返すので再代入する string = string.Trim(); // string = "abc"
例 13.20. 書式出力 ( 整数 → 文字列の変換 )
// str4 = "255.255.0.0:8080" // 書式は SPRINTF と同じ str4 = SFXAnsiString::Format("%d.%d.%d.%d:%d", 255, 255, 0, 0, 8080);
例 13.22. BREW インターフェースでの使い方
// ファイル名 str1 のファイルの情報を取得する
SFBFileMgrSmp fileMgr = SFBFileMgr::NewInstance();
fileMgr->GetInfo(str1);
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|