第8回 Stringクラスによる文字列の操作と値を返す関数

第8回←教材はこれ!

  • そうそうこっちの方が僕の知ってたイメージ。

文字列の操作には,Stringクラスが利用できる。Stringクラスも,Dateクラスと同じように,インスタンスをターゲットにして,プロパティやメソッドを操作する。しかし,new演算子インスタンスを作成しなくても,ダブルクォーテーション(")で括って記述した文字列は,そのまま Stringクラスのインスタンスとして扱える

  • ただやはりクラスの概念がいまいちー。
  • 文字列から一部を取り出すメソッド「String.substring()メソッド」。引数は開始位置と終了位置。0番目からスタート。使用例は以下。

var year_str:String = "2007";
trace(year_str.substring(2, 4)); // 出力: 07

文字列のインデックス番号は0から始めるので,第1引数の2は(3文字目なので)よいとして,第2引数の4がわかりにくいかと思う。これはヘルプを見ると,第2引数は「抽出するサブストリングの最後の文字のインデックスに1を加えた整数」とされているからである。

  • これまためんどくさい話になってるけど、この続きにあるように文字間に仕切りがあって間の数で考えてるとすると納得できるかな。ただし仕切り0番目は最初の文字の左に来る。間の数を0番目から始めると文字数と最後の番目が一緒になるのも都合が良い!*1
  • さらに大事なことに第2引数を省略すると「String.length」が適用させるとのこと。つまり省略すると最後まで切り抜かれると。
  • 1桁の数字も十の位に0を足して2桁表示にする賢い工夫が以下。

var nDate:Number = 1;
var date_str:String = String(nDate+100).substring(1);
trace(date_str); // 出力: 01

  • だいたいこういう表示ものは値の桁数固定の方が絶対デザイン的に楽。僕のケータイ待ち受け(ドラクエ復活の呪文風時計)はそのあたり間違ってる★
  • ここでこの処理を戻り値ありの関数に定義。戻り値はreturnで指定。書式は以下。

function 関数名(引数:データ型):戻り値のデータ型 {
// 処理内容
return 戻り値;
}

  • 実際はこれ。

function xSetDigits(n:int):String {
var temp_str:String = String(n+100); ←西暦の4桁であっても100を足すけど実は問題なし。
var n_str:String = temp_str.substring(temp_str.length-2); ←何桁であっても下2桁を取り出せる!
return n_str;
}

  • 最後にさりげなく「returnステートメントは,値を返すだけでなく,関数を終了させる。」と記述あり。そういえば「return」の後に何も指定がない関数見たことあるような。。。

*1:植木算の発想ですね。仕切りが「木」で文字が「間」になってしまうけど★