カテゴリー
JavaScript

様々なオブジェクト(Stringオブジェクト)について知ろう2

この章ではStringオブジェクトについて説明します。これも組み込みオブジェクトなので、簡単に文字列に関しての機能を使うことが出来ます。1 初めにオブジェクトを作成してから、様々なメソッドなどを実行します。1 lengthは文字列の長さを取得します。
では例をみてみましょう。1 全角文字、半角文字ともに1と、数えます。
結果は「8」です。1 charAtは文字列の一部を取り出します。
ここでの注意は「取り出す文字の位置」は0から数えてください。1 1から数えるのではないので注意してください。
a.charAt(30)のように指定した数が文字数を超えているような場合はカラが返されます(何も表示されない)
では例をみてみましょう。1 指定位置の数え方は以下のようになります。
0番目=>a
1番目=>b
2番目=>c
結果は「b」です。1 substringメソッドは指定した範囲の文字列を取り出します。
引数で「取り出す文字列の範囲」を指定して、その個所を取り出します。
例えばa.substring(0,3)は0番目の文字から3番目の文字の一つ前までを取り出すと言う意味です。終了位置の一つ前までなので気を付けてください。
では例をみてみましょう。11 substring(0,2)
=>0番目から2番目の手前までなので、答えはabです。
substring(2,0)
=>開始位置のほうが終了位置より大きい場合は後ろから前へ数えます。つまり2番目のひとつ前(つまりb)から、先頭まで取り出しますので、答えはabです。
substring(4,7)
=> 4番目から7番目の手前までなので、答えはefgです。

substring(4)
=>終了位置を省略した場合はその位置から末尾まですべて取り出すので、結果はefghiです。1 sliceメソッドは指定した範囲の文字列を取り出します。
引数で「取り出す文字列の範囲」を指定して、その範囲を取り出します。
例えばa.slice (0,3)は0番目の文字から3番目の文字の一つ手前までを取り出すと言う意味です。
では例をみてみましょう。1 1slice (0,3)
=>0番目から3番目の手前まで。
答えはabc です。

slice (4,7)
=> 4番目から7番目の手前まで。
答えはdef です。

slice (2,0)
=>開始位置の番号のほうが終了位置の番号より大きい場合は何も返されません。

slice(4)
=>終了位置を省略した場合はその位置から末尾まですべて取り出します。
結果はdef ghiです。

slice(-11,-8)
=>sliceでは開始位置、終了位置ともにマイナスの指定も出来ます。マイナス指定の場合は末尾から1と、数えます。
結果はabcです。

slice(-11,7)
=>このように開始位置がマイナス指定で、終了位置がプラス指定と言う組み合わせも可能です。
結果はabc defです。

slice(4,-2)
=>このように開始位置がプラス指定で、終了位置がマイナス指定と言う組み合わせも可能です。 結果はdef gです。1 => concatメソッドは文字列と文字列を結合する機能を持っています。
文字列1,文字列2….を結びつけます。
文字列は「,」で区切れば何個でも書けます。
以下のようにconcatと同じ結果が「+」を使用しても実現できます。
では例をみてみましょう。111 substrメソッドは指定した範囲の文字列を取り出します。
では例をみてみましょう。11 substr (0,3)
=>0番目から3つ切り取ります。
結果はabc です。

substr (4,7)
=> 4番目から7つ切り取ります。
結果はdef ghiです。

substr (2,0)
=> 2番目から0個なので何も返されません。

substr (4)
=>個数を省略した場合はその位置から末尾まですべて取り出します。
結果はdef ghiです。

substr (-11,-8)
=>個数のマイナスの指定はできません。ですので、何も表示されません。

substr (-11,7)
=>このように開始位置がマイナス指定で、個数がプラス指定と言う組み合わせも可能です。
結果はabc defです。1 indexOfは指定した文字列を先頭から右側に向かって検索します。
検索した結果、その文字がなかった場合は-1が返りますし、文字が見つかった場合はその文字の先頭位置を返します。
検索開始位置を省略した場合は0が指定されたとみなされます。
では例をみてみましょう。1 結果は「8」と「9」です。1 検索開始位置の2(cの部分)はここから右方向に検索が始まるというだけで、返される番号は先頭から数えた数になるので注意してください。
つまり,cの部分から数えた数が返されるのではありません。1 lastIndexOfは指定した文字列を後ろから先頭に向かって検索します。
検索した結果、その文字がなかった場合は-1が返りますし、文字が見つかった場合はその文字の先頭位置を返します。
検索開始位置を省略した場合は末尾が指定されたとみなされます。
以下の例はlastIndexとindexOfを較べています。1 11=>末尾から検索しているので、gchiのcが該当します
1=>先頭から数えているので、abcのcが該当します
1=>前から数えて6番目の文字(この例ではdです)から先頭に向かって検索します。hiは4番目にあるので4が返されます(ヒットした位置は先頭から数えます)。
1=>前から数えて6番目の文字(この例ではdです)から末尾に向かって検索します。hiは12番目にあるので12が返されます。
1toLowerCaseメソッドは文字列を小文字に変換します。
toUpperCaseメソッドは文字列を大文字に変換します。
では例をみてみましょう。1 結果は
「abcdefg」

「ABCDEFG」
です。1 charCodeAtメソッドは引数で指定した箇所にある文字のUnicode の値を返します。
Unicodeは「世界中の文字を共通した方法で符号化」して、コンピュータ上で扱えるように作られた文字コードです。
では例をみてみましょう。1 Cの文字コードは67なので
結果は「67」です。
charCodeAt で返されるUnicodeの値は65.536より小さい値を返します。

カテゴリー
Perl

文字列に関する関数を知ろう

この章では文字列に関する関数について説明します。
先ほど配列に関する関数を説明しましたが、今度は文字列を操作する関数について説明します。1 substr関数は指定した文字列の中の一部分を取得したり、文字列の一部を他の文字列に置換します。
第1引数は対象となる文字列を指定し、第2引数は文字列の中の開始位置を指定し、第3引数は切り出す文字の長さです。
第3引数を省略した場合は文字列の末尾までを取り出します。 
第4引数を指定すると1番目から3番目の引数によって指定した文字列を第4引数の文字列で置き換えます。
では例をみてみましょう。1 この例では第3,第 4引数を省略しているので、第2引数で指定した位置から、最後までを取得して$n1に代入しています。
位置の指定方法で気を付けることは先頭の文字の位置は0であり、1から数えるのではないので、注意してください。
$moji1の文字列は一部をsubstrで取り出されても、$moji1自体は変化しません。
つまり、最後に1で出力しても1が出力されます。
11次の例をみてみましょう。
1第 2引数にマイナスの値を入れた場合には以下の図のように末尾から数えます。
マイナスの値を入れた位置から末尾までを取得して$n2に代入しています。11
次の例をみてみましょう。
1Americaの先頭から2番目の文字から2つを取得します。
第2引数が2なので2個切り出しています。
結果は「me」です。
次の例をみてみましょう。
1franceの先頭から2番目の文字から、末尾から2番目の文字までの間の文字列を取得します。
このように第3引数にマイナスを指定すると第2引数で指定した位置から第3引数で指定した位置までの間の文字列を取り出すことが出来ます。
結果は「ran」です。
次の例をみてみましょう。1 4番目の引数には置き換える文字列を指定します。
置き換えの文字列は2番目と3番目の引数によって指定した文字列です。
1番目の引数は文字列が代入されている変数でなければいけません。
それは置きかえられた新しい文字列が入れられるようにするためです。
これは元の文字列の内容が書き替わるので注意してください。
結果は以下の通りです。
「hawai is fun」
次はrand関数について説明します。1 「返される乱数の最大値」を入力すると0から指定した数値未満までの乱数を返します。
引数を省略すると、0から1までの値を返します。
また、返される数値には小数点が含まれます。
では例をみてみましょう。1 乱数なのでどの数値が出力されるのかはそのたびに変わります。
この例の場合には引数に4を指定したので、4までの数値が更新するごとに変わります。
例えば小数点を含む値なので1などと出力されます。
この例は
「print rand(4);」と書いても同じ意味になります。

次の例をみてみましょう。1 引数を省略した場合には0から1までの値を返しますので、例えば1などと出力されます。
次の例をみてみましょう。1 小数点を含む数値の整数の部分だけを取り出すにはrand関数の前にintを付けます。
例えば1という小数点ではなく2と整数が出力されます。
rand関数の前あるintは int関数と言いまして小数点以下を無視して、整数部分だけを返します。
では以下のint関数についての例を見てみましょう。
以下の例は変数に入っている小数点以下を切り捨てるので、結果は0です。1 ではrand関数を使っておみくじを作ってみましょう。1 rand関数を使うと更新ボタンを押すごとに乱数値が変わるので、占いを作ることが出来ます。
この例ではrand関数の戻り値を配列の添え字にしています。
この例の場合にはint関数は付けても付けなくてもどちらでも結構です。
なぜなら、配列の添え字は整数部分しか入れられないので、自動で小数点以下を切り捨ててくれるからです。

次にucfirst関数について説明します。1 ucfirst関数は対象の文字列の先頭の文字を大文字に変換した文字列を返します。1 結果は「America」になります。
以下のように書いても同じ意味になります。1 すべての文字を大文字に変換したい場合はuc関数を使います。
11結果は「AMERICA」になります。
対象の文字列の先頭を小文字に変換したい場合はlcfirst関数を使います。
11結果は「book」になります。
対象となる文字列を全て小文字に変換するにはlc関数を使います。
11結果は「world」になります。

次はindex関数について説明します。
1index関数は対象となる文字列の中に第2引数で指定した文字列が含まれているかどうかを検索し、含まれている場合は最初に見つかった位置を数値で返します。
見つからなかった場合は「-1」を返します。
第 3引数の1を省略すると0を指定したとみなされます。1 第 3引数を省略しているので検索開始位置は0になります。
この例ではtoは前から3つ目の所にあるので3が返されます。
toが2つありますが、最初に見つかった位置を返します。
以下の例のように第3引数に例えば5を入れるとkyotokyotoのなかの5番目の位置から右に検索されるので結果は8になります。
11rindex関数は対象となる文字列の中に第2引数で指定した文字列が含まれているかどうかを検索し、含まれている場合は最後に見つかった位置を数値で返します。
第3引数を省略した場合は最後の文字を指定したとみなされます。検索する文字が見つからない場合は「-1」を返します。
では例をみてみましょう。
1toが2つありますが、rindex関数は検索の結果、最後に見つかった位置を数値で返しますので結果は8になります。
次の例をみてみましょう。
1この例の場合は第3引数に3を指定しているので、対象となる文字列であるkyotokyotoの中の前から3番目の文字以内でtoを検索します。
結果は「3」になります。
1次は文字列の長さを測る関数lengthについて説明します。
1では例をみてみましょう。
1結果は以下の通りです。
長さは5
長さは9
UTF-8は英数字は1バイトで数えて、日本語は3バイトで数えるようになっています。
英数字の場合はバイト数と文字数は同じになります。
文字コードによりバイト数は違うので注意してください。