文字列操作_Flex
文字列操作関数
数値を文字列に変換したり、その逆などよく使う関数を説明します。
文字列の定義
var str:String; str = "何か文字列";
のように宣言し、ダブルクォーテーションで囲って文字列を入れることができます。
文字列の連結
var str:String, str2:String, str3:String; str = "test"; str2 = "abc"; str3 = str + str3;
「+」にて連結します。
文字列の長さを取得
var str:String; var len:int; str = "testです。"; len = str.lengh;
この場合、lenに7が入ります。2バイト文字は1として数えられます。
指定番目の文字を取得
var chDat:String; chDat = str.charAt(0);
引数は文字列内のインデックスです。指定された位置での文字を返します。
文字列検索
var str:String; var iPos:int; str = "testです。"; iPos = str.indexOf("st");
indexOfにて文字列を検索します。見つかった文字位置を返します(上記の場合は2がiPosに返る)。見つからなかった場合は-1が返ります。
後ろから文字列検索
var str:String; var iPos:int; str = "testです。"; iPos = str.lastIndexOf("st");
後ろから文字列検索をします。上記の場合は2が返ります。
指定範囲の文字列を取り出し
var str:String; var sDat:String; str = "testです。"; sDat = str.slice(0, 4);
インデックス0〜(4-1)の文字列を取り出します。上記の場合、sDatに「test」が入ります。第一引数が開始位置、第二引数にて終了位置+1を指定します。
文字列の取り出し
var str:String; var sDat:String; str = "testです。"; sDat = str.substr(2, 2);
「slice」に似ていますが、「substr」は第一引数にて開始位置、第二引数にて取り出す文字列数を指定します。上記の場合、インデックス2つめから2文字分を取り出します(sDatに「st」が入る)。
大文字を小文字に変換
var str:String, str2:String; str2 = str.toLowerCase();
小文字大文字に変換
str2 = str.toUpperCase();
文字列を数値に変換
文字列を数値に変換するには、「parseInt」関数を使用します。
var cou:int; cou = parseInt("12");
この場合、文字列として12が存在しますが、「parseInt」にてcouに「数値としての」12が入ります。
数値を文字列に変換
数値を文字列に変換するには、「String(x)」を使用する方法と、数値変数の「toString()」メンバ関数を使用する方法があります。
var cou:int; var str:String; cou = 12; str = String(cou);
上記の場合、strに文字列としての"12"が入ります。以下のように記述することもできます。
var cou:int; var str:String; cou = 12; str = cou.toString();
また、数値を16進数で取得したい場合は、「toString(16)」のように記述します。
var cou:int; var str:String; cou = 12; str = cou.toString(16);
結果、strには"c"が入ります。
文字列の分解(split)
コンマなどで区切られた文字列を分解します。分解のための文字(もしくは文字列)はなんでもかまいません。
たとえば、「one,two,three,four,five」という文字列が変数strに入っていたとして、これを分解します。
var i:int; var str:String; var ar:Array; str = "one,two,three,four,five"; ar = str.split(","); for(i = 0; i < ar.length; i++) { trace(ar[i]); }
分解は「split」関数で行います。第一引数の分解のための文字を指定します。この場合はコンマで区切ります。結果は配列(ここではar)として返されます。
ar.lengthは配列の要素数、ar[i]はそれぞれの配列の中身を取り出しています。上記の結果は以下のように出力されます。
one two three four five
この関数は、特にCGIからデータを取得してきたときにその文字列要素を分解するといった用途で使用できるかと思います。
また、引数には正規表現での記載ができます。この場合は引数をダブルクォーテーションで囲まない表現となる点に注意してください。
ar = str.split(/\r\n|\r|\n|,/);
とした場合は「¥r¥n」「¥r」「¥n」「,」の4つが分割の区切りになります。
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.