Foundation > Rogue Wave Script 言語リファレンス > 文字列
 
文字列
このセクションでは、以下のトピックを取り上げます。
*文字列リテラル構文
*文字列への自動変換
*文字列プロパティー
*文字列メソッド
*文字列関数
*文字列演算子
文字列リテラル構文
文字列リテラルとは、二重引用符 (") または一重引用符 (') で囲まれた 0 個以上の文字です。
メモ: C++ プログラマーの方へ:一重引用符の使用を除いて、文字列リテラルは C および C++ と同じ構文を持ちます。
以下は文字列リテラルの例です。
"My name is Hal"
'My name is Hal'
'"Hi there", he said'
"3.14"
"Hello, world\n"
これらの例の 1 つ目と 2 つ目の文字列は同じです。
円記号文字 (\) を使って、文字列リテラルで直接表現できない文字を表すエスケープ・シーケンスを取り入れることができます。 文字列で使用可能なエスケープ・シーケンスは以下のとおりです。
Rogue Wave Script エスケープ・シーケンス 
エスケープ・シーケンス
意味
\n
改行
\t
タブ
\\
円記号文字 (\)
\"
二重引用符 (")
\'
一重引用符 (')
\b
バックスペース
\f
フォーム・フィード
\r
キャリッジ・リターン
\xhh
ASCII コードが hh の文字。hh は、2 つの 16 進数字のシーケンスです。
\ooo
ASCII コードが ooo の文字。ooo は、1 つ、2 つまたは 3 つの 8 進数字のシーケンスです。
以下はエスケープ・シーケンスを使った文字列リテラルの例です。
Rogue Wave Script エスケープ・シーケンスの例 
文字列リテラル
意味
"Read \"Read \"The Black Bean\""\""
"The Black Bean" をお読みください (Read "The Black Bean")
'\'Hello\', he said'
彼は「こんにちは」 と言った ('Hello', he said)
"c:\\temp"
c:\temp
"First line\nSecond line\nThird line"
1 行目
2 行目
3 行目
"\xA9 1995-1997"
© 1995-1997
文字列が converted to a number の場合、その文字列を数値リテラルとして解析しようと試みます。 文字列が有効な数値リテラルを表していないときは、変換によって NaN が返されます。
文字列への自動変換
引数の 1 つに文字列を予測する関数またはメソッドに非文字列値が渡された場合、その値は文字列に自動的に変換されます。 たとえば、文字列メソッド indexOf に最初の引数として数値が渡された場合、この数値は文字列表現のように扱われます。
"The 10 commandments".indexOf(10) −> 4
同様に、文字列オペランドを取る演算子は、すべての非文字列オペランドを文字列に自動的に変換します。
"The " + 10 + " commandments" −> "The 10 commandments"
文字列への変換では、特定の値のtoStringメソッドを使用します。 組み込まれたすべての値には toString メソッドがあります。
文字列プロパティー
文字列には以下のプロパティーがあります。
Rogue Wave Script 文字列プロパティー
構文
文字列.length
文字列の文字数。 これは読み取り専用のプロパティーです。
  "abc".length −> 3
  "".length −> 0
文字列メソッド
文字列の文字は、左から右にインデックス化されます。 文字列 文字列 の最初の文字のインデックスは 0 で、最後の文字のインデックスは 文字列.length-1 です。
文字列には以下のメソッドがあります。
Rogue Wave Script 文字列メソッド 
構文
効果
文字列.substring
(
開始 [ , end ] )
インデックス開始 で始まり、インデックス 終了-1 で終わる文字列のサブ文字列を返します。終了 が省略されている場合、文字列 の末尾を返します。
例:
  "0123456".substring(0, 3) −> "012"
  "0123456".substring(2, 4) −> "23"
  "0123456".substring(2) −> "23456"
文字列.charAt(インデックス)
文字列の特定のインデックスの文字が含まれる 1 文字文字列を返します。 インデックスが範囲外の場合は、空の文字列を返します。
例:
  "abcdef".charAt(0) −> "a"
  "abcdef".charAt(3) −> "d"
  "abcdef".charAt(100) −> ""
文字列.charCodeAt(インデックス)
文字列の特定のインデックスの文字の ASCII コードを返します。 インデックスが範囲外の場合は、NaN を返します。
例:
  "abcdef".charCodeAt(0) −> 97
  "abcdef".charCodeAt(3) −> 100
  "abcdef".charCodeAt(100) −> NaN
文字列.indexOf(サブ文字列
[ , インデックス ] )
最初のサブ文字列文字列のインデックスを返します。 文字列は、インデックスを起点に検索されます。 インデックスが省略されている場合、文字列 は最初から検索されます。 このメソッドでは、サブ文字列が見つからない場合に ?1 を返します。
例:
  "abcdabcd".indexOf("bc") −> 1
  "abcdabcd".indexOf("bc", 1) −> 1
  "abcdabcd".indexOf("bc", 2) −> 5
  "abcdabcd".indexOf("bc", 10) −> -1
  "abcdabcd".indexOf("foo") −> -1
  "abcdabcd".indexOf("BC") −> -1
文字列.lastIndexOf
(
サブ文字列 [ , インデックス ] )
最後のサブ文字列文字列のインデックスを返します。 文字列は、インデックスから後方に検索されます。 インデックスが省略されている場合、文字列は末尾から検索されます。 このメソッドでは、サブ文字列が見つからない場合に ?1 を返します。
例:
  "abcdabcd".lastIndexOf("bc") −> 5
  "abcdabcd".lastIndexOf("bc", 5) −> 5
  "abcdabcd".lastIndexOf("bc", 4) −> 1
  "abcdabcd".lastIndexOf("bc", 0) −> -1
  "abcdabcd".lastIndexOf("foo") −> -1
  "abcdabcd".lastIndexOf("BC") −> -1
文字列.toLowerCase( )
小文字に変換された文字列を返します。
例:
  "Hello, World".toLowerCase() −> "hello, world"
文字列.toUpperCase( )
大文字に変換された文字列を返します。
例:
  "Hello, World".toUpperCase() −>
      "HELLO, WORLD"
文字列.split(区切り文字)
区切り文字で区切られた文字列のサブ文字列を含む文字列のarrayを返します。 配列メソッドの join (結合) も参照してください。
例:
"first name,last name,age".split(",") −> an array a such that a.length is 3, a[0] is "first name", a[1] is "last name", and a[2] is "age".
文字列区切り文字が含まれない場合、文字列全体を含む 1 つの要素を持つ配列が返されます。
例:
  "hello".split(",") −> an array a such that a.length is 1 and a[0] is "hello",
文字列.toString( )
文字列自体を返します。
文字列関数
以下の関数は文字列で機能します。
Rogue Wave Script 文字列関数 
構文
効果
String.fromCharCode
(
コード)
特定の ASCII コードを持つ文字が含まれる 1 つの文字列を返します。
例:
  String.fromCharCode(65) −> "A"
  String.fromCharCode(0xA9) −> "c"
parseInt(文字列
[ ,
基数 ] )
文字列を特定の基数に書き込まれた整数として解析し、その値を返します。 文字列が有効な整数でない場合は、NaN が返されます。
先頭の空白文字は無視されます。 parseInt が特定の基数の数字でない文字を見つけると、その文字とその後の文字をすべて無視して、そこまでに解析された整数値を返します。
基数が省略されている場合、底 16 で解析されるときに文字列0x または 0X で始まらない限り、または底 8 で解析されるときは 0 で始まらない限り、10 と見なされます。
例:
  parseInt("123") −> -123
  parseInt("-123") −> -123
  parseInt("123.45") −> 123
  parseInt("1001010010110", 2) −> 4758
  parseInt("a9", 16) −> 169
  parseInt("0xa9") −> 169
  parseInt("010") −> 8
  parseInt("123 poodles") −> 123
  parseInt("a lot of poodles") −> NaN
parseFloat(文字列)
文字列を浮動小数として解析し、その値を返します。 文字列が有効な数値でない場合は、NaN が返されます。
先頭の空白文字は無視されます。 文字列は、最初の認識されない文字まで解析されます。 数字が何も認識されない場合、関数は NaN を返します。
例:
  parseFloat("-3.14e-15") −> -3.14e-15
  parseFloat("-3.14e-15 poodles") −> -3.14e-15
  parseFloat("a fraction of a poodle") −> NaN
文字列演算子
以下の演算子を使って文字列を操作することができます。
Rogue Wave Script 文字列演算子 
構文
効果
文字列1 + 文字列2
文字列1 および文字列2 の連結を含む文字列を返します。
例:
  "Hello," + " world" −> "Hello, world"
演算子 + を使って文字列を非文字列値に追加すると、まず非文字列値が文字列に変換されます。
例:
  "Your age is " + 23 −> "Your age is 23"
  23 + " is your age" −> "23 is your age"
文字列1 == 文字列2

文字列1 != 文字列2
演算子 == は、文字列1 および 文字列2 が同じ場合にブール値 true を、そうでない場合に false を返します。 2 は長さが同じで同じ文字列のシーケンスが含まれる場合に同一と見なされます。 演算子 != は、== の逆です。
例:
  "a string" == "a string" −> true
  "a string" == "another string" −> false
  "a string" == "A STRING" −> false
  "a string" != "a string" −> false
  "a string" != "another string" −> true
演算子 == および != が文字列と数値の比較に使われる場合、文字列はまずconverted to a numberされ、2 つの数値を比較します。
例:
  "12" == "+12" −> false
  12 == "+12" −> true
文字列1 < 文字列2

文字列1 <= 文字列2

文字列1 > 文字列2

文字列1 >= 文字列2
演算子 < は、文字列1文字列2 よりも辞書式分類上、厳密に優先される場合に true を、そうでない場合に false を返します。 演算子 <= は、文字列1文字列2 よりも辞書式分類上、厳密に優先されるかまたは等しい場合に true を、そうでない場合に false を返します。
例:
  "abc" < "xyz" −> true
  "a" < "abc" −> true
  "xyz" < "abc" −> false
  "abc" < "abc" −> false
  "abc" > "xyz" −> false
  "a" > "abc" −> false
  "xyz" > "abc" −> true
その他
これらのいずれかの演算子を使って文字列と非文字列値を比較すると、まず非文字列値が文字列に変換されます。
例:
  "2" >= 123 −> true
  123 < "2" −> false
これらいずれかの演算子を使って文字列と数値を比較すると、文字列がconverted to a numberされてから、2 つの数値を比較します。
例:
  "10" > "2" −> false
  10 > "2" −> true

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.