ストリングオブジェクト

ストリングオブジェクトは文字列のオブジェクトです。

ストリングオブジェクトの生成

ストリングオブジェクトは以下の時に生成されます。

  • 引用符(「゛」、「'」)で指定された文字列を代入したとき
  • new String()で生成したとき

ストリングのプロパティ

length 文字列の長さ

例) lengthプロパティ

"tokiwa".length// lengthは6

"shio masayuki".length// lengthは11

"".length// 空文字列のlengthは0

var hello = "Hello, World!"; // 変数helloに文字列を代入
hello.length// lengthは13

ストリングオブジェクトのメソッド

charAt() 指定された位置の文字
charCodeAt() 指定された位置の文字のAsciiコード
concat() 文字列の連結(+演算子と同じ)
fromCharCode() Asciiコードを文字に変換
indexOf() 文字列が最初に見つかった位置
lastIndexOf() 文字列が最後に見つかった位置
slice() 指定した位置の文字列の切り出し
substr() 文字列の一部分を抜きだす(2つの位置)
substring() 文字列の一部分を抜き出す
toLowerCase() アルファベットの小文字化
toUpperCase() アルファベットの大文字化
split() 文字列を配列に変換

文字列中の文字指定

文字列中の何文字目かを指定して文字を取り出します。

文字列.charAt(インデックス)

インデックスは何文字目かを表す数値です。0から始まるので注意してください。

例 charAt()による文字指定

"tokiwa".charAt(2) // 値は"k"

var name="shio masayuki";
name.charAt(name.length - 1); // 値は"i"。最後の文字を取り出す式

文字列中の文字列検索

文字列中に指定した文字列が含まれているか調べます。

文字列.indexOf(探す文字列, 検索開始インデックス)

検索開始インデックスを省略すると文字列の最初から検索します。

文字列を検索して見つかった場合には、見つかった文字列の先頭の文字のインデックスを返します。見つからなかった場合には-1の値を返します。

例 indexOf()による検索

"tokiwa".indexOf("k") // 値は2

"tokiwa".indexOf("K") // 値は-1。大文字のKは無い。

"shio masayuki".indexOf("a",7) // 値は8

開始位置と終了位置による抜き出し(substring()メソッド)

開始位置と終了位置をインデックスで指定します。終了インデックスは抜き出したい部分の最後の文字の次の文字のインデックスを指定します。終了インデックスが省略された場合には、文字列の長さ(つまり最後の文字まで)が指定されたことになります。

 文字列.substring(開始インデックス, 終了インデックス)
 

例 substring()による抜き出し

"tokiwa".substring(2,4) // 値は"ki"

"tokiwa".substring(0,3) // 値は"tok"

"shio masayuki".substring(5) // 値は"masayuki"

開始位置と長さによる抜き出し(substr()メソッド)

開始位置と抜き出す文字列の長さを指定します。長さが省略された場合には、開始インデックスから最後の文字までが抜き出されます。

文字列.substr(開始インデックス, 長さ)

例 substr()による抜き出し

"tokiwa".substr(2,3) // 値は"kiw"

"tokiwa".substr(0,3) // 値は"tok"

"shio masayuki".substr(5) // 値は"masayuki"

複数の文字列に分割(split()メソッド)

指定した区切り文字によって文字列を複数に分割し、配列にします。

文字列.split(区切り文字)

例 split()による分割

var names = "shio masayuki".split(" "); // 半角空白で分割し配列namesに代入
trace(names[0]); // shioと表示
trace(names[1]); // masayukiと表示

Asciiコードを文字に変換(fromCharCode()メソッド)

Asciiコードを指定して文字に変換します。

String.fromCharCode(Asciiコード)

(注意)

  • 英語キーボードと日本語キーボードで記号の位置が異なるため、記号に関してはキーボードの表示と異なったものになることがあります。
  • キーコードに対して使用した場合にはキーボード表記と異なる場合があります。

練習問題

任意の文字列の初めから最初に現れる半角空白文字の前までを抜き出すプログラムを作成せよ。

(ヒント) indexOf()関数とsubstr()関数を組み合わせる。

(別解) split()関数を用いる方法もある。