この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

String クラス

String プリミティブデータ型のメソッドが含まれます。

名前空間

System

使用方法

String についての詳細は、「String データ型」を参照してください。

String のメソッド

String のメソッドは次のとおりです。

abbreviate(maxWidth)

現在の string が指定した長さよりも長い場合、指定した長さに省略して省略記号を追加した string を返します。それ以外の場合、省略記号を付けずに元の string を返します。

署名

public String abbreviate(Integer maxWidth)

パラメーター

maxWidth
型: Integer
maxWidth が 4 未満の場合、このメソッドは実行時例外を発生させます。

戻り値

型: String

1String s = 'Hello Maximillian';
2String s2 = s.abbreviate(8);
3System.assertEquals('Hello...', s2);
4System.assertEquals(8, s2.length());

abbreviate(maxWidth, offset)

指定した文字オフセットで開始する、指定した長さに省略した string を返します。返される string では、先頭と末尾の文字が削除されている場合はこれらの場所に省略記号が追加されます。

署名

public String abbreviate(Integer maxWidth, Integer offset)

パラメーター

maxWidth
型: Integer
オフセットは、返される string の左端の文字または省略記号に続く最初の文字であるとは限りませんが、結果のどこかに表示されます。これらに関係なく、abbreviatemaxWidth を超える長さの string は返しません。maxWidth が小さすぎる場合、このメソッドは実行時例外を発生させます。
offset
型: Integer

戻り値

型: String

1String s = 'Hello Maximillian';
2// Start at M
3String s2 = s.abbreviate(9,6);
4System.assertEquals('...Max...', s2);
5System.assertEquals(9, s2.length());

capitalize()

現在の string の最初の文字をタイトルの大文字にして返します。

署名

public String capitalize()

戻り値

型: String

使用方法

このメソッドは、Character.toTitleCase(char) Java メソッドに基づいてます。

1String s = 'hello maximillian';
2String s2 = s.capitalize();
3System.assertEquals('Hello maximillian', s2);

center(size)

現在の string が指定したサイズで中央に表示されるように、左右に空白を埋め込んで返します。指定したサイズが現在の string サイズよりも小さい場合、string 全体が空白を追加せずに返されます。

署名

public String center(Integer size)

パラメーター

size
型: Integer

戻り値

型: String

1String s = 'hello';
2String s2 = s.center(9);
3System.assertEquals(
4   '  hello  ',
5   s2);

center(size, paddingString)

現在の string が指定したサイズで中央に表示されるように、左右に指定した string を埋め込んで返します。指定したサイズが現在の string サイズよりも小さい場合、string 全体が埋め込みなしで返されます。

署名

public String center(Integer size, String paddingString)

パラメーター

size
型: Integer
paddingString
型: String

戻り値

型: String

1String s = 'hello';
2String s2 = s.center(9, '-');
3System.assertEquals('--hello--', s2);

charAt(index)

指定されたインデックスで文字の値を返します。

署名

public Integer charAt(Integer index)

パラメーター

index
型: Integer
値を取得する文字のインデックス。

戻り値

型: Integer

文字の整数値。

使用方法

charAt メソッドは、指定されたインデックスで参照される文字の値を返します。インデックスがサロゲートペアの先頭 (上位サロゲートコードポイント) を参照している場合、このメソッドは上位サロゲートコードポイントのみを返します。サロゲートペアに対応する補助コードポイントを返すには、代わりに codePointAt をコールします。

次の例では、インデックス 0 にある最初の文字の値を取得します。

1String str = 'Ω is Omega.';
2System.assertEquals(937, str.charAt(0));

次の例では charAtcodePointAt の違いを示します。この例では、これらのメソッドをエスケープされた補助 Unicode 文字に対してコールします。charAt(0) は、上位サロゲート値 (\uD835 に対応) を返します。codePointAt(0) は、サロゲートペア全体の値を返します。

1String str = '\uD835\uDD0A';
2System.assertEquals(55349, str.charAt(0), 
3    'charAt(0) didn\'t return the high surrogate.');
4System.assertEquals(120074, str.codePointAt(0),
5    'codePointAt(0) didn\'t return the entire two-character supplementary value.');

codePointAt(index)

指定されたインデックスで Unicode コードポイント値を返します。

署名

public Integer codePointAt(Integer index)

パラメーター

index
型: Integer
文字列に含まれる文字 (Unicode コードユニット) のインデックス。インデックス範囲は 0 ~ (文字列長 - 1) です。

戻り値

型: Integer

指定されたインデックスの Unicode コードポイント値。

使用方法

index がサロゲートペアの先頭 (上位サロゲートコードポイント) を参照していて、その次のインデックスの文字値が下位サロゲートコードポイントを参照している場合、このメソッドはサロゲートペアに対応する補助コードポイントを返します。それ以外の場合、このメソッドは所定のインデックスにある文字値を返します。

Unicode とサロゲートペアについての詳細は、「ユニコードコンソーシアム」を参照してください。

次の例では、インデックス 0 にある最初の文字のコードポイント値を取得します。この場合は、エスケープされたオメガ (Ω) 文字です。また、この例ではインデックス 20 のコードポイントも取得します。これはエスケープされた補助 Unicode 文字 (文字のペア) に対応します。さらに、オメガのエスケープされた形式とエスケープされていない形式のコードポイント値が同じであることを検証します。

この例の補助文字 (\\uD835\\uDD0A) は、次の数学用フラクトゥール大文字 G に対応します。 数学的なフラクトゥール大文字 G 記号

1String str = '\u03A9 is Ω (Omega), and \uD835\uDD0A ' + 
2    ' is Fraktur Capital G.';
3System.assertEquals(937, str.codePointAt(0));
4System.assertEquals(120074, str.codePointAt(20));
5// Escaped or unescaped forms of the same character have the same code point
6System.assertEquals(str.codePointAt(0), str.codePointAt(5));

codePointBefore(index)

指定されたインデックスより前に出現する Unicode コードポイント値を返します。

署名

public Integer codePointBefore(Integer index)

パラメーター

index
型: Integer
返される Unicode コードポイントの前のインデックス。インデックス範囲は 1 ~文字列長です。

戻り値

型: Integer

指定されたインデックスより前に出現する文字または Unicode コードポイント値。

使用方法

index-1 の文字値が下位サロゲートコードポイントで、index-2 が負ではなく、このインデックス位置にある文字が上位サロゲートコードポイントである場合、このメソッドはこのサロゲートペアに対応する補助コードポイントを返します。index-1 の文字値がペアになっていない下位サロゲートまたは上位サロゲートコードポイントである場合、そのサロゲート値が返されます。

Unicode とサロゲートペアについての詳細は、「ユニコードコンソーシアム」を参照してください。

次の例では、最初の文字 (インデックス 1 の前) のコードポイント値を取得します。この場合は、エスケープされたオメガ (Ω) 文字です。また、この例ではインデックス 20 のコードポイントも取得します。これはエスケープされた補助文字 (インデックス 22 の前の 2 文字) に対応します。

1String str = '\u03A9 is Ω (Omega), and \uD835\uDD0A ' + 
2    ' is Fraktur Capital G.';
3System.assertEquals(937, str.codePointBefore(1));
4System.assertEquals(120074, str.codePointBefore(22));

codePointCount(beginIndex, endIndex)

指定されたテキスト範囲���にある Unicode コードポイントの数を返します。

署名

public Integer codePointCount(Integer beginIndex, Integer endIndex)

パラメーター

beginIndex
型: Integer
範囲内の最初の文字のインデックス。
endIndex
型: Integer
範囲内の最後の文字の次のインデックス。

戻り値

型: Integer

指定された範囲内にある Unicode コードポイントの数。

使用方法

指定された範囲は beginIndex で開始し、endIndex—1 で終了します。テキスト範囲内のペアになっていないサロゲートは、それぞれ 1 つのコードポイントと見なされます。

次の例では、エスケープされた Unicode 文字が含まれるサブ文字列と、1 つのコードポイントと見なされる複数の Unicode 補助文字が含まれる別のサブ文字列内のコードポイントの件数を出力します。

1String str = '\u03A9 and \uD835\uDD0A characters.';
2System.debug('Count of code points for ' + str.substring(0,1) 
3             + ': ' + str.codePointCount(0,1));
4System.debug('Count of code points for ' + str.substring(6,8) 
5             + ': ' + str.codePointCount(6,8));
6
7// Output:
8// Count of code points for Ω: 1
9// Count of code points for : 1

compareTo(secondString)

string の各文字の unicode 値に基づいて、2 つの文字列を辞書編集的に比較します。

署名

public Integer compareTo(String secondString)

パラメーター

secondString
型: String

戻り値

型: Integer

使用方法

結果は次のとおりです。

  • メソッドをコールした string が辞書編集的に secondString の前に来る場合は負の Integer
  • メソッドをコールした string が辞書編集的に compsecondStringString の後に来る場合は正の Integer
  • string が等しい場合は 0

string が異なるインデックス位置がない場合、辞書編集的に短い string が長い string の後になります。

equals メソッドが true を返す場合、このメソッドは 0 を返します。

1String myString1 = 'abcde';
2String myString2 = 'abcd';
3Integer result = 
4   myString1.compareTo(myString2);
5System.assertEquals(result, 1);

contains(substring)

メソッドをコールした string に、substring に指定しされた文字のシーケンスが含まれている場合にのみ、true を返します。

署名

public Boolean contains(String substring)

パラメーター

substring
型: String

戻り値

型: Boolean

1String myString1 = 'abcde';
2String myString2 = 'abcd';
3Boolean result = 
4   myString1.contains(myString2);
5System.assertEquals(result, true);

containsAny(inputString)

現在の string に指定した string 内のいずれかの文字が含まれる場合は true、それ以外の場合は false を返します。

署名

public Boolean containsAny(String inputString)

パラメーター

inputString
型: String

戻り値

型: Boolean

1String s = 'hello';
2Boolean b1 = s.containsAny('hx');
3Boolean b2 = s.containsAny('x');
4System.assertEquals(true, b1);
5System.assertEquals(false, b2);

containsIgnoreCase(substring)

現在の string に指定した文字シーケンス (大文字と小文字を区別しない) が含まれる場合は true、それ以外の場合は false を返します。

署名

public Boolean containsIgnoreCase(String substring)

パラメーター

substring
型: String

戻り値

型: Boolean

1String s = 'hello';
2Boolean b = s.containsIgnoreCase('HE');
3System.assertEquals(
4   true,
5   b);

containsNone(inputString)

現在の string に、指定した string 内のいずれかの文字が含まれない場合は true、それ以外の場合は false を返します。

署名

public Boolean containsNone(String inputString)

パラメーター

inputString
型: String
inputString が空の文字列の場合または現在の string が空の場合、このメソッドは true を返します。inputString が null の場合、このメソッドは実行時例外を返します。

戻り値

型: Boolean

1String s1 = 'abcde';
2System.assert(s1.containsNone('fg'));

containsOnly(inputString)

現在の string に指定した文字シーケンス内の文字のみが含まれ、その他の文字は含まれない場合は true、それ以外の場合は false を返します。

署名

public Boolean containsOnly(String inputString)

パラメーター

inputString
型: String

戻り値

型: Boolean

1String s1 = 'abba';
2String s2 = 'abba xyz';
3Boolean b1 = 
4   s1.containsOnly('abcd');
5System.assertEquals(
6   true,
7   b1);
8Boolean b2 = 
9   s2.containsOnly('abcd');
10System.assertEquals(
11   false,
12   b2);

containsWhitespace()

現在の string に空白文字が含まれる場合は true、それ以外の場合は false を返します。

署名

public Boolean containsWhitespace()

戻り値

型: Boolean

1String s = 'Hello Jane';
2System.assert(s.containsWhitespace()); //true
3s = 'HelloJane ';
4System.assert(s.containsWhitespace()); //true
5s = ' HelloJane';
6System.assert(s.containsWhitespace()); //true
7s = 'HelloJane';
8System.assert(!s.containsWhitespace()); //false

countMatches(substring)

現在の string 内で指定したサブ文字列が発生する回数を返します。

署名

public Integer countMatches(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

1String s = 'Hello Jane';
2System.assertEquals(1, s.countMatches('Hello'));
3s = 'Hello Hello';
4System.assertEquals(2, s.countMatches('Hello'));
5s = 'Hello hello';
6System.assertEquals(1, s.countMatches('Hello'));

deleteWhitespace()

現在の string のすべての空白文字を削除して返します。

署名

public String deleteWhitespace()

戻り値

型: String

1String s1 = ' Hello Jane ';
2String s2 = 'HelloJane';
3System.assertEquals(s2, s1.deleteWhitespace());

difference(secondString)

現在の string と指定した string 間の差異を返します。

署名

public String difference(String secondString)

パラメーター

secondString
型: String
secondString が空の文字列の場合、このメソッドは空の文字列を返します。secondString が null の場合、このメソッドは実行時例外を発生させます。

戻り値

型: String

1String s = 'Hello Jane';
2String d1 = 
3   s.difference('Hello Max');
4System.assertEquals(
5   'Max',
6   d1);
7String d2 = 
8   s.difference('Goodbye');
9System.assertEquals(
10   'Goodbye',
11   d2);

endsWith(suffix)

メソッドをコールした string が suffix で終わる場合、true を返します。

署名

public Boolean endsWith(String suffix)

パラメーター

suffix
型: String

戻り値

型: Boolean

1String s = 'Hello Jason';
2System.assert(s.endsWith('Jason'));

endsWithIgnoreCase(suffix)

現在の string が指定したサフィックスで終わる場合は true、それ以外の場合は false を返します。

署名

public Boolean endsWithIgnoreCase(String suffix)

パラメーター

suffix
型: String

戻り値

型: Boolean

1String s = 'Hello Jason';
2System.assert(s.endsWithIgnoreCase('jason'));

equals(secondString)

非推奨。このメソッドは、equals(stringOrId) に置き換えられます。渡された文字列が null ではなく、現在の文字列と同じバイナリ文字シーケンスを表す場合、true を返します。このメソッドを使用して、大文字と小文字を区別する比較を実行します。

署名

public Boolean equals(String secondString)

パラメーター

secondString
型: String

戻り値

型: Boolean

使用方法

compareTo メソッドが 0 を返す場合、このメソッドは true を返します。

このメソッドを使用して、大文字と小文字を区別する比較を実行します。他方、== 演算子は、Apex セマンティックを一致させるために大文字と小文字を区別しない比較を実行します。

1String myString1 = 'abcde';
2String myString2 = 'abcd';
3Boolean result = myString1.equals(myString2);
4System.assertEquals(result, false);

equals(stringOrId)

渡されたオブジェクトが null ではなく、現在の文字列と同じバイナリ文字シーケンスを表す場合、true を返します。文字列と、文字列または ID を表すオブジェクトを比較するには、このメソッドを使用します。

署名

public Boolean equals(Object stringOrId)

パラメーター

stringOrId
型: Object

戻り値

型: Boolean

使用方法

ID 値を比較する場合、ID の長さが同じである必要はありません。たとえば、15 文字の ID 文字列を同等の 18 文字の ID 値を表すオブジェクトと比較した場合、このメソッドは true を返します。15 文字と 18 文字の ID についての詳細は、「ID データ型」を参照してください。

このメソッドを使用して、大文字と小文字を区別する比較を実行します。他方、== 演算子は、Apex セマンティックを一致させるために大文字と小文字を区別しない比較を実行します。

次の例は、さまざまな種別の変数を比較して、値が等価であった場合と等価ではなかった場合の両方を示しています。また、Apex によって比較される前に、特定の値がどのように自動変換されるかも示しています。

1// Compare a string to an object containing a string
2Object obj1 = 'abc';
3String str = 'abc';
4Boolean result1 = str.equals(obj1);
5System.assertEquals(true, result1);
6
7// Compare a string to an object containing a number
8Integer obj2 = 100;
9Boolean result2 = str.equals(obj2);
10System.assertEquals(false, result2);
11
12// Compare a string to an ID of the same length.
13// 15-character ID
14Id idValue15 = '001D000000Ju1zH';
15// 15-character ID string value
16String stringValue15 = '001D000000Ju1zH';
17Boolean result3 = stringValue15.equals(IdValue15);
18System.assertEquals(true, result3); 
19
20// Compare two equal ID values of different lengths:
21//  15-character ID and 18-character ID
22Id idValue18 = '001D000000Ju1zHIAR';
23Boolean result4 = stringValue15.equals(IdValue18);
24System.assertEquals(true, result4);

equalsIgnoreCase(secondString)

secondString が null ではなく、メソッドをコールした string と同じ文字シーケンスを表す場合、true を返します。大文字と小文字は区別されません。

署名

public Boolean equalsIgnoreCase(String secondString)

パラメーター

secondString
型: String

戻り値

型: Boolean

使用方法

String.equalsIgnoreCase() メソッドは、コンテキストユーザーのロケールを無視します。ロケールに従って文字列を比較したい場合は、代わりに == 演算子を使用します。String.equalsIgnoreCase() メソッドはロケールを無視するため、通常はこの演算子よりも高速に実行されます。

1String myString1 = 'abcd';
2String myString2 = 'ABCD';
3Boolean result = 
4myString1.equalsIgnoreCase(myString2);
5System.assertEquals(result, true);

escapeCsv()

必要に応じて、CSV 列の string を二重引用符で囲んで返します。

署名

public String escapeCsv()

戻り値

型: String

使用方法

string にカンマ、改行、または二重引用符が含まれる場合、返される string は二重引用符で囲まれます。また、文字列内のすべての二重引用符はさらにもう 1 つの二重引用符でエスケープされます。

string にカンマ、改行、二重引用符が含まれない場合、string が変更されずに返されます。

1String s1 = 'Max1, "Max2"';
2String s2 = s1.escapeCsv();
3System.assertEquals('"Max1, ""Max2"""', s2);

escapeEcmaScript()

EcmaScript string ルールを使用して string 内の文字をエスケープします。

署名

public String escapeEcmaScript()

戻り値

型: String

使用方法

Apex string と EcmaScript string の唯一の違いは、EcmaScript では単一引用符とスラッシュ (/) がエスケープされる点です。

1String s1 = '"grade": 3.9/4.0';
2String s2 = s1.escapeEcmaScript();
3System.debug(s2);
4// Output is:
5// \"grade\": 3.9\/4.0
6System.assertEquals(
7   '\\"grade\\": 3.9\\/4.0', 
8    s2);

escapeHtml3()

HTML 3.0 エンティティを使用して string 内の文字をエスケープします。

署名

public String escapeHtml3()

戻り値

型: String

1String s1 = 
2   '"<Black&White>"';
3String s2 = 
4   s1.escapeHtml3();
5System.debug(s2);
6// Output:
7// &quot;&lt;Black&amp;
8// White&gt;&quot;

escapeHtml4()

HTML 4.0 エンティティを使用して string 内の文字をエスケープします。

署名

public String escapeHtml4()

戻り値

型: String

1String s1 = 
2   '"<Black&White>"';
3String s2 = 
4   s1.escapeHtml4();
5System.debug(s2);
6// Output:
7// &quot;&lt;Black&amp;
8// White&gt;&quot;

escapeJava()

Java 文字列ルールを使用して文字がエスケープされている文字列を返します。エスケープされる文字として、引用符や、タブ、バックスラッシュ、改行文字のような制御文字などがあります。

署名

public String escapeJava()

戻り値

型: String

エスケープされた文字列。

1// Input string contains quotation marks
2String s = 'Company: "Salesforce.com"';
3String escapedStr = s.escapeJava();
4// Output string has the quotes escpaded
5System.assertEquals('Company: \\"Salesforce.com\\"', escapedStr);

escapeSingleQuotes(stringToEscape)

String s の単一引用符の前にエスケープ文字 (\) を追加した String を返します。

署名

public static String escapeSingleQuotes(String stringToEscape)

パラメーター

stringToEscape
型: String

戻り値

型: String

使用方法

このメソッドは動的 SOQL ステートメントの作成時に役に立ち、SOQL インジェクションを回避します。動的 SOQL についての詳細は、「動的 SOQL」を参照してください。

1String s = '\'Hello Jason\'';
2system.debug(s); // Outputs 'Hello Jason'
3String escapedStr = String.escapeSingleQuotes(s);
4// Outputs \'Hello Jason\'
5system.debug(escapedStr); 
6// Escapes the string \\\' to string \'
7system.assertEquals('\\\'Hello Jason\\\'', escapedStr);

escapeUnicode()

Unicode 文字が Unicode エスケープシーケンスにエスケープされている文字列を返します。

署名

public String escapeUnicode()

戻り値

型: String

エスケープされた文字列。

1String s = 'De onde você é?';
2String escapedStr = s.escapeUnicode();
3System.assertEquals('De onde voc\\u00EA \\u00E9?', escapedStr);

escapeXml()

XML エンティティを使用して string 内の文字をエスケープします。

署名

public String escapeXml()

戻り値

型: String

使用方法

5 つの基本 XML エンティティ (gt、lt、quot、amp、apos) のみをサポートします。DTD または外部エンティティはサポートしていません。0x7f より大きい Unicode 文字はエスケープされません。

1String s1 = 
2   '"<Black&White>"';
3String s2 = 
4   s1.escapeXml();
5System.debug(s2);
6// Output:
7// &quot;&lt;Black&amp;
8// White&gt;&quot;

format(stringToFormat, formattingArguments)

第 1 引数をパターンとして扱い、第 2 引数を置換および形式設定に使用して文字列を返します。この置換および形式設定は、apex:outputText および Java MessageFormat クラスと同じ方法です。第 2 引数の List の非文字列型は、その型に存在する toString() メソッド上書きを適用して暗黙的に文字列に変換されます。

署名

public static String format(String stringToFormat, List<Object> formattingArguments)

パラメーター

stringToFormat
型: String
formattingArguments
型: List<Object>

戻り値

型: String

バージョン管理動作の変更

バージョン 51.0 以降、format() メソッドは、stringToFormat パラメーターの単一引用符をサポートし、formattingArguments パラメーターを使用して書式設定された文字列を返します。バージョン 50.0 以前では、単一引用符はサポートされていませんでした。

1String template = '{0} was last updated {1}';
2List<Object> parameters = new List<Object> {'Universal Containers', DateTime.newInstance(2018, 11, 15) };
3String formatted = String.format(template, parameters);
4System.debug ('Newly formatted string is:' + formatted);

fromCharArray(charArray)

整数のリストの値から string を返します。

署名

public static String fromCharArray(List<Integer> charArray)

パラメーター

charArray
型: List<Integer>

戻り値

型: String

1List<Integer> charArr= new Integer[]{74};
2String convertedChar = String.fromCharArray(charArr);
3System.assertEquals('J', convertedChar);

getChars()

この文字列内の文字を表す文字値の配列を返します。

署名

public List<Integer> getChars()

戻り値

型: List<Integer>

各整数が文字列内の文字値に対応する、整数のリスト。

次の例では、文字列を文字の配列に変換してから、「J」の値に対応する最初の配列要素を取得します。

1String str = 'Jane goes fishing.';
2Integer[] chars = str.getChars();
3// Get the value of 'J'
4System.assertEquals(74, chars[0]);

getCommonPrefix(strings)

指定したすべての文字列に共通する最初の文字シーケンスを文字列として返します。

署名

public static String getCommonPrefix(List<String> strings)

パラメーター

strings
型: List<String>

戻り値

型: String

1List<String> ls = new List<String>{'SFDCApex', 'SFDCVisualforce'};
2String prefix = String.getCommonPrefix(ls);
3System.assertEquals('SFDC', prefix);

getLevenshteinDistance(stringToCompare)

現在の string と指定した string 間のレーベンシュタイン距離を返します。

署名

public Integer getLevenshteinDistance(String stringToCompare)

パラメーター

stringToCompare
型: String

戻り値

型: Integer

使用方法

レーベンシュタイン距離は、ある文字列から別の文字列に変更するために必要な変更の回数です。1 文字の変更 (削除、挿入、または置換) が 1 つの変更としてカウントされます。

1String s = 'Hello Joe';
2Integer i = s.getLevenshteinDistance('Hello Max');
3System.assertEquals(3, i);

getLevenshteinDistance(stringToCompare, threshold)

現在の string と指定した string 間のレーベンシュタイン距離が指定したしきい値以下の場合はその距離を返します。それ以外の場合は -1 を返します。

署名

public Integer getLevenshteinDistance(String stringToCompare, Integer threshold)

パラメーター

stringToCompare
型: String
threshold
型: Integer

戻り値

型: Integer

使用方法

レーベンシュタイン距離は、ある文字列から別の文字列に変更するために必要な変更の回数です。1 文字の変更 (削除、挿入、または置換) が 1 つの変更としてカウントされます。

例:

この例では、レーベンシュタイン距離は 3 ですが、しきい値の引数が 2 でこの距離よりも小さいため、このメソッドは -1 を返します。

1String s = 'Hello Jane';
2Integer i = s.getLevenshteinDistance('Hello Max', 2);
3System.assertEquals(-1, i);

hashCode()

この文字列のハッシュコード値を返します。

署名

public Integer hashCode()

戻り値

型: Integer

使用方法

この値は、Java String.hashCode の同等メソッドによって計算されるハッシュコードに基づきます。

このメソッドを使用して、String メンバー変数を含むカスタム型に対してハッシュコードの計算を簡単にすることができます。各 String 変数のハッシュコードに基づいて、使用しているデータ型のハッシュコードを計算できます。次に例を示します。

カスタム型を持つハッシュコードメソッドの使用の詳細については、「対応付けのキーとセットでのカスタムデータ型の使用」を参照してください。

1public class MyCustomClass {
2   String x,y;
3   // Provide a custom hash code
4   public Integer hashCode() {
5    return 
6    (31*x.hashCode())^(y.hashCode());
7   }
8}

indexOf(substring)

指定したサブ文字列が最初に発生したインデックスを返します。サブ文字列がない場合、このメソッドは -1 を返します。

署名

public Integer indexOf(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

1String myString1 = 'abcde';
2String myString2 = 'cd';
3Integer result = myString1.indexOf(mystring2);
4System.assertEquals(2, result);

indexOf(substring, index)

特定のインデックスの位置から指定したサブ文字列が最初に出現した位置のインデックス (開始値 0) を返します。サブ文字列がない場合、このメソッドは -1 を返します。

署名

public Integer indexOf(String substring, Integer index)

パラメーター

substring
型: String
index
型: Integer

戻り値

型: Integer

1String myString1 = 'abcdabcd';
2String myString2 = 'ab';
3Integer result = myString1.indexOf(mystring2, 1);
4System.assertEquals(4, result);

indexOfAny(substring)

サブ文字列で指定したいずれかの文字が最初に発生した位置の開始値 0 のインデックスを返します。指定したすべての文字が 1 つもない場合、-1 が返されます。

署名

public Integer indexOfAny(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

1String s1 = 'abcd';
2String s2 = 'xc';
3Integer result = s1.indexOfAny(s2);
4System.assertEquals(2, result);

indexOfAnyBut(substring)

指定したサブ文字列内に存在しない文字が最初に発生した位置の開始値 0 のインデックスを返します。サブ文字列内の文字のみで構成されている場合、-1 を返します。

署名

public Integer indexOfAnyBut(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

1String s1 = 'abcd';
2String s2 = 'xc';
3Integer result = s1.indexOfAnyBut(s2);
4System.assertEquals(0, result);

indexOfChar(character)

指定された文字値に対応する文字が最初に出現した位置のインデックスを返します。

署名

public Integer indexOfChar(Integer character)

パラメーター

character
型: Integer
文字列内の文字の整数値。

戻り値

型: Integer

指定された文字が最初に出現した位置のインデックス。文字が見つからない場合は -1。

使用方法

このメソッドは、Unicode コードユニットでインデックスを返します。

1String str = '\\u03A9 is Ω (Omega)';
2// Returns 0, which is the first character.
3System.debug('indexOfChar(937)=' + str.indexOfChar(937));
4
5// Output:
6// indexOfChar(937)=0

indexOfChar(character, startIndex)

指定されたインデックスから開始し、指定された文字値に対応する文字が最初に出現した位置のインデックスを返します。

署名

public Integer indexOfChar(Integer character, Integer startIndex)

パラメーター

character
型: Integer
検索する文字の整数値。
startIndex
型: Integer
検索の開始インデックス。

戻り値

型: Integer

指定された開始インデックスから始め、指定された文字が最初に出現した位置のインデックス。文字が見つからない場合は -1。

使用方法

このメソッドは、Unicode コードユニットでインデックスを返します。

次の例では、さまざまな方法でオメガ (Ω) 文字のインデックスを検索します。indexOfChar への最初のコールでは、開始インデックスを指定しないため、返されるインデックスは、文字列全体でオメガが最初に出現した位置を示す 0 です。後続のコールでは、開始インデックスを指定して、指定されたインデックスから開始するサブ文字列内でオメガが最初に出現した位置を検索します。

1String str = 'Ω and \\u03A9 and Ω';
2System.debug('indexOfChar(937)=' + str.indexOfChar(937));
3System.debug('indexOfChar(937,1)=' + str.indexOfChar(937,1));
4System.debug('indexOfChar(937,10)=' + str.indexOfChar(937,10));
5
6// Output:
7// indexOfChar(937)=0
8// indexOfChar(937,1)=6, (corresponds to the escaped form \\u03A9)
9// indexOfChar(937,10)=12

indexOfDifference(stringToCompare)

指定した文字列と異なる文字が最初に出現した位置のインデックス (開始値 0) を返します。

署名

public Integer indexOfDifference(String stringToCompare)

パラメーター

stringToCompare
型: String

戻り値

型: Integer

1String s1 = 'abcd';
2String s2 = 'abxc';
3Integer result = s1.indexOfDifference(s2);
4System.assertEquals(2, result);

indexOfIgnoreCase(substring)

指定したサブ文字列 (大文字と小文字を区別しない) が最初に発生した位置の開始値 0 のインデックスを返します。サブ文字列がない場合、このメソッドは -1 を返します。

署名

public Integer indexOfIgnoreCase(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

1String s1 = 'abcd';
2String s2 = 'BC';
3Integer result = s1.indexOfIgnoreCase(s2, 0);
4System.assertEquals(1, result);

indexOfIgnoreCase(substring, startPosition)

インデックス i の位置から指定したサブ文字列 (大文字と小文字を区別しない) が最初に発生した位置の開始値 0 のインデックスを返します。サブ文字列がない場合、このメソッドは -1 を返します。

署名

public Integer indexOfIgnoreCase(String substring, Integer startPosition)

パラメーター

substring
型: String
startPosition
型: Integer

戻り値

型: Integer

isAllLowerCase()

現在の string 内のすべての文字が小文字の場合は true、それ以外の場合は false を返します。

署名

public Boolean isAllLowerCase()

戻り値

型: Boolean

1String allLower = 'abcde';
2System.assert(allLower.isAllLowerCase());

isAllUpperCase()

現在の string 内のすべての文字が大文字の場合は true、それ以外の場合は false を返します。

署名

public Boolean isAllUpperCase()

戻り値

型: Boolean

1String allUpper = 'ABCDE';
2System.assert(allUpper.isAllUpperCase());

isAlpha()

現在の string 内のすべての文字が Unicode 文字のみの場合は true、それ以外の場合は false を返します。

署名

public Boolean isAlpha()

戻り値

型: Boolean

1// Letters only
2String s1 = 'abc';
3// Returns true
4Boolean b1 = 
5   s1.isAlpha();
6System.assertEquals(
7   true, b1);
8
9// Letters and numbers
10String s2 = 'abc 21';
11// Returns false
12Boolean b2 = 
13   s2.isAlpha();
14System.assertEquals(
15   false, b2);

isAlphaSpace()

現在の string 内のすべての文字が Unicode 文字または空白のみの場合は true、それ以外の場合は false を返します。

署名

public Boolean isAlphaSpace()

戻り値

型: Boolean

1String alphaSpace = 'aA Bb';
2System.assert(alphaSpace.isAlphaSpace());
3String notAlphaSpace = 'ab 12';
4System.assert(!notAlphaSpace.isAlphaSpace());
5notAlphaSpace = 'aA$Bb';
6System.assert(!notAlphaSpace.isAlphaSpace());

isAlphanumeric()

現在の string 内のすべての文字が Unicode 文字または数字のみの場合は true、それ以外の場合は false を返します。

署名

public Boolean isAlphanumeric()

戻り値

型: Boolean

1// Letters only
2String s1 = 'abc';
3// Returns true
4Boolean b1 = 
5   s1.isAlphanumeric();
6System.assertEquals(
7   true, b1);
8
9// Letters and numbers
10String s2 = 'abc021';
11// Returns true
12Boolean b2 = 
13   s2.isAlphanumeric();
14System.assertEquals(
15   true, b2);

isAlphanumericSpace()

現在の string 内のすべての文字が Unicode 文字、数字、または空白のみの場合は true、それ以外の場合は false を返します。

署名

public Boolean isAlphanumericSpace()

戻り値

型: Boolean

1String alphanumSpace = 'AE 86';
2System.assert(alphanumSpace.isAlphanumericSpace());
3String notAlphanumSpace = 'aA$12';
4System.assert(!notAlphanumSpace.isAlphaSpace());

isAsciiPrintable()

現在の string に印字可能な ASCII 文字のみが含まれる場合は true、それ以外の場合は false を返します。

署名

public Boolean isAsciiPrintable()

戻り値

型: Boolean

1String ascii = 'abcd1234!@#$%^&*()`~-_+={[}]|:<,>.?';
2System.assert(ascii.isAsciiPrintable());
3String notAscii = '√';
4System.assert(!notAscii.isAsciiPrintable());

isBlank(inputString)

指定した string が空白、空 ('')、または null の場合は true、それ以外の場合は false を返します。

署名

public static Boolean isBlank(String inputString)

パラメーター

inputString
型: String

戻り値

型: Boolean

1String blank = '';
2String nullString = null;
3String whitespace = '  ';
4System.assert(String.isBlank(blank));
5System.assert(String.isBlank(nullString));
6System.assert(String.isBlank(whitespace));
7String alpha = 'Hello';
8System.assert(!String.isBlank(alpha));

isEmpty(inputString)

指定した string が空 ('') または null の場合は true、それ以外の場合は false を返します。

署名

public static Boolean isEmpty(String inputString)

パラメーター

inputString
型: String

戻り値

型: Boolean

1String empty = '';
2String nullString = null;
3System.assert(String.isEmpty(empty));
4System.assert(String.isEmpty(nullString));
5String whitespace = '  ';
6String alpha = 'Hello';
7System.assert(!String.isEmpty(whitespace));
8System.assert(!String.isEmpty(alpha));

isNotBlank(inputString)

指定した string が空白でない、空 ('') でない、および null でない場合は true、それ以外の場合は false を返します。

署名

public static Boolean isNotBlank(String inputString)

パラメーター

inputString
型: String

戻り値

型: Boolean

1String alpha = 'Hello world!';
2System.assert(String.isNotBlank(alpha));
3String blank = '';
4String nullString = null;
5String whitespace = '  ';
6System.assert(!String.isNotBlank(blank));
7System.assert(!String.isNotBlank(nullString));
8System.assert(!String.isNotBlank(whitespace));

isNotEmpty(inputString)

指定した string が空 ('') でない、および null でない場合は true、それ以外の場合は false を返します。

署名

public static Boolean isNotEmpty(String inputString)

パラメーター

inputString
型: String

戻り値

型: Boolean

1String whitespace = '  ';
2String alpha = 'Hello world!';
3System.assert(String.isNotEmpty(whitespace));
4System.assert(String.isNotEmpty(alpha));
5String empty = '';
6String nullString = null;
7System.assert(!String.isNotEmpty(empty));
8System.assert(!String.isNotEmpty(nullString));

isNumeric()

現在の string に Unicode 数字のみが含まれる場合は true、それ以外の場合は false を返します。

署名

public Boolean isNumeric()

戻り値

型: Boolean

使用方法

小数点 (1.2) は Unicode 数字ではありません。

1String numeric = '1234567890';
2System.assert(numeric.isNumeric());
3String alphanumeric = 'R32';
4String decimalPoint = '1.2';
5System.assert(!alphanumeric.isNumeric());
6System.assert(!decimalpoint.isNumeric());

isNumericSpace()

現在の string に Unicode 数字または空白のみが含まれる場合は true、それ以外の場合は false を返します。

署名

public Boolean isNumericSpace()

戻り値

型: Boolean

使用方法

小数点 (1.2) は Unicode 数字ではありません。

1String numericSpace = '1 2 3';
2System.assert(numericSpace.isNumericspace());
3String notNumericspace = 'FD3S FC3S';
4System.assert(!notNumericspace.isNumericspace());

isWhitespace()

現在の string に空白文字のみが含まれる場合または空の場合は true、それ以外の場合は false を返します。

署名

public Boolean isWhitespace()

戻り値

型: Boolean

1String whitespace = ' ';
2String blank = '';
3System.assert(whitespace.isWhitespace());
4System.assert(blank.isWhitespace());
5String alphanum = 'SIL80';
6System.assert(!alphanum.isWhitespace());

join(iterableObj, separator)

指定した List などの Iterable オブジェクトの要素を、指定した区切り文字で区切られた 1 つの string に結合します。

署名

public static String join(Object iterableObj, String separator)

パラメーター

iterableObj
型: Object
separator
型: String

戻り値

型: String

使用方法

1List<Integer> li = new 
2   List<Integer> 
3   {10, 20, 30};
4String s = String.join(
5   li, '/');
6System.assertEquals(
7   '10/20/30', s);

lastIndexOf(substring)

指定したサブ文字列が最後に発生したインデックスを返します。サブ文字列がない場合、このメソッドは -1 を返します。

署名

public Integer lastIndexOf(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

1String s1 = 'abcdefgc';
2Integer i1 = s1.lastIndexOf('c');
3System.assertEquals(7, i1);

lastIndexOf(substring, endPosition)

インデックス 0 の文字から始まり、指定したインデックスで終わる範囲で、指定したサブ文字列が最後に発生した位置のインデックスを返します。

署名

public Integer lastIndexOf(String substring, Integer endPosition)

パラメーター

substring
型: String
endPosition
型: Integer

戻り値

型: Integer

使用方法

サブ文字列がない場合または endPosition が負の場合、このメソッドは -1 を返します。endPosition が現在の string の最後のインデックスよりも大きい場合、string 全体が検索されます。

1String s1 = 'abcdaacd';
2Integer i1 = s1.lastIndexOf('c', 7);
3System.assertEquals(6, i1);
4Integer i2 = s1.lastIndexOf('c', 3);
5System.assertEquals(2, i2);

lastIndexOfChar(character)

指定された文字値に対応する文字が最後に出現した位置のインデックスを返します。

署名

public Integer lastIndexOfChar(Integer character)

パラメーター

character
型: Integer
文字列内の文字の整数値。

戻り値

型: Integer

指定された文字が最後に出現した位置のインデックス。文字が見つからない場合は -1。

使用方法

このメソッドは、Unicode コードユニットでインデックスを返します。

1String str = '\u03A9 is Ω (Omega)';
2// Get the last occurrence of Omega.
3System.assertEquals(5, str.lastIndexOfChar(937));

lastIndexOfChar(character, endIndex)

指定されたインデックスから開始し、指定された文字値に対応する文字が最後に出現した位置のインデックスを返します。

署名

public Integer lastIndexOfChar(Integer character, Integer endIndex)

パラメーター

character
型: Integer
検索する文字の整数値。
endIndex
型: Integer
検索の終了インデックス。

戻り値

型: Integer

指定された開始インデックスから始め、指定された文字が最後に出現した位置のインデックス。値が見つからない場合は -1。

使用方法

このメソッドは、Unicode コードユニットでインデックスを返します。

次の例では、さまざまな方法でオメガ (Ω) 文字が最後に出現した位置のインデックスを検索します。lastIndexOfChar への最初のコールでは、終了インデックスを指定しないため、返されるインデックスは、文字列全体でオメガが最後に出現した位置を示す 12 です。後続のコールでは、終了インデックスを指定して、サブ文字列内でオメガが最後に出現した位置を検索します。

1String str = 'Ω and \u03A9 and Ω';
2System.assertEquals(12, str.lastIndexOfChar(937));
3System.assertEquals(6, str.lastIndexOfChar(937,11));
4System.assertEquals(0, str.lastIndexOfChar(937,5));

lastIndexOfIgnoreCase(substring)

指定したサブ文字列 (大文字と小文字を区別しない) が最後に発生した位置のインデックスを返します。

署名

public Integer lastIndexOfIgnoreCase(String substring)

パラメーター

substring
型: String

戻り値

型: Integer

使用方法

サブ文字列がない場合、このメソッドは -1 を返します。

1String s1 = 'abcdaacd';
2Integer i1 = s1.lastIndexOfIgnoreCase('DAAC');
3System.assertEquals(3, i1);

lastIndexOfIgnoreCase(substring, endPosition)

インデックス 0 の文字から始まり、指定したインデックスで終わる範囲で、指定したサブ文字列 (大文字と小文字を区別しない) が最後に発生した位置のインデックスを返します。

署名

public Integer lastIndexOfIgnoreCase(String substring, Integer endPosition)

パラメーター

substring
型: String
endPosition
型: Integer

戻り値

型: Integer

使用方法

サブ文字列がない場合または endPosition が負の場合、このメソッドは -1 を返します。endPosition が現在の string の最後のインデックスよりも大きい場合、string 全体が検索されます。

1String s1 = 'abcdaacd';
2Integer i1 = s1.lastIndexOfIgnoreCase('C', 7);
3System.assertEquals(6, i1);

left(length)

現在の string の左端から指定した長さ分の文字を返します。

署名

public String left(Integer length)

パラメーター

length
型: Integer

戻り値

型: String

使用方法

length が string のサイズよりも大きい場合、string 全体が返されます。

1String s1 = 'abcdaacd';
2String s2 = s1.left(3);
3System.assertEquals('abc', s2);

leftPad(length)

指定した長さになるまで現在の string の左側に空白を埋め込んで返します。

署名

public String leftPad(Integer length)

パラメーター

length
型: Integer

使用方法

length が現在の string サイズ以下の場合、string 全体が空白の埋め込みなしで返されます。

戻り値

型: String

1String s1 = 'abc';
2String s2 = s1.leftPad(5);
3System.assertEquals('  abc', s2);

leftPad(length, padStr)

指定した長さになるまで左側に String padStr を埋め込んで現在の String を返します。

署名

public String leftPad(Integer length, String padStr)

パラメーター

length
型: Integer
padStr
型: String
埋め込む文字列。null または空の場合は、1 文字の空白として扱われます。

使用方法

length が現在の string サイズ以下の場合、string 全体が空白の埋め込みなしで返されます。

戻り値

型: String

1String s1 = 'abc';
2String s2 = 'xy';
3String s3 = s1.leftPad(7,s2);
4System.assertEquals('xyxyabc', s3);

length()

string に含まれる 16 ビット Unicode 文字の数を返します。

署名

public Integer length()

戻り値

型: Integer

1String myString = 'abcd';
2Integer result = myString.length();
3System.assertEquals(result, 4);

mid(startIndex, length)

指定した開始値 0 の startIndex の文字で始まる、length によって指定された文字数の新しい string を返します。

署名

public String mid(Integer startIndex, Integer length)

パラメーター

startIndex
型: Integer
startIndex が負の場合は、0 とみなされます。
length
型: Integer
length が負または 0 の場合、空の string が返されます。length が残りの文字数よりも大きい場合、string の残りが返されます。

戻り値

型: String

使用方法

このメソッドは、substring(startIndex) メソッドと substring(startIndex, endIndex) メソッドに類似していますが、2 番目の引数が返される文字数である点が異なります。

1String s = 'abcde';
2String s2 = s.mid(2, 3);
3System.assertEquals(
4   'cde', s2);

normalizeSpace()

現在の string の先頭、末尾、繰り返しの空白文字を削除して返します。

署名

public String normalizeSpace()

戻り値

型: String

使用方法

このメソッドは、空白文字 (スペース、タブ (\t)、改行 (\n)、行頭復帰 (\r)、およびフォームフィード (\f)) を正規化します。

1String s1 = 
2   'Salesforce \t     force.com';
3String s2 = 
4   s1.normalizeSpace();
5System.assertEquals(
6   'Salesforce force.com', s2);

offsetByCodePoints(index, codePointOffset)

指定されたインデックスから指定されたコードポイント数でオフセットした Unicode コードポイントのインデックスを返します。

署名

public Integer offsetByCodePoints(Integer index, Integer codePointOffset)

パラメーター

index
型: Integer
文字列内の開始インデックス。
codePointOffset
型: Integer
オフセットするコードポイント数。

戻り値

型: Integer

オフセットに開始インデックスを加算した値に対応するインデックス。

使用方法

index で指定されたテキスト範囲内でペアになっていないサロゲートは、codePointOffset でそれぞれ 1 つのコードポイントとして数えられます。

次の例では、開始インデックス 0 (最初の文字から開始) で 3 コードポイントをオフセットした位置から始まる文字列に対して offsetByCodePoints をコールします。文字列には、エスケープされた形式の補助文字のシーケンスが 1 つ (文字のペアが 1 組) 含まれます。文字列の先頭から数えて 3 コードポイントをオフセットした結果、返されるコードポイントインデックスは 4 です。

1String str = 'A \uD835\uDD0A BC';
2System.assertEquals(4, str.offsetByCodePoints(0,3));

remove(substring)

発生したすべての指定したサブ文字列を削除して、結果の文字列を返します。

署名

public String remove(String substring)

パラメーター

substring
型: String

戻り値

型: String

1String s1 = 'Salesforce and force.com';
2String s2 = 
3   s1.remove('force');
4System.assertEquals(
5   'Sales and .com', s2);

removeEnd(substring)

指定したサブ文字列が string の末尾に発生した場合にのみサブ文字列を削除します。

署名

public String removeEnd(String substring)

パラメーター

substring
型: String

戻り値

型: String

1String s1 = 'Salesforce and force.com';
2String s2 = 
3   s1.removeEnd('.com');
4System.assertEquals(
5   'Salesforce and force', s2);

removeEndIgnoreCase(substring)

指定したサブ文字列 (大文字と小文字を区別しない) が string の末尾に発生した場合にのみ、そのサブ文字列を削除します。

署名

public String removeEndIgnoreCase(String substring)

パラメーター

substring
型: String

戻り値

型: String

1String s1 = 'Salesforce and force.com';
2String s2 = s1.removeEndIgnoreCase('.COM');
3System.assertEquals('Salesforce and force', s2);

removeStart(substring)

指定したサブ文字列が string の先頭に発生した場合にのみ、そのサブ文字列を削除します。

署名

public String removeStart(String substring)

パラメーター

substring
型: String

戻り値

型: String

1String s1 = 'Salesforce and force.com';
2String s2 = 
3   s1.removeStart('Sales');
4System.assertEquals(
5   'force and force.com', s2);

removeStartIgnoreCase(substring)

指定したサブ文字列 (大文字と小文字を区別しない) が string の先頭に発生した場合にのみ、そのサブ文字列を削除します。

署名

public String removeStartIgnoreCase(String substring)

パラメーター

substring
型: String

戻り値

型: String

1String s1 = 'Salesforce and force.com';
2String s2 = 
3   s1.removeStartIgnoreCase('SALES');
4System.assertEquals(
5   'force and force.com', s2);

repeat(numberOfTimes)

現在の string を指定した回数だけ繰り返して返します。

署名

public String repeat(Integer numberOfTimes)

パラメーター

numberOfTimes
型: Integer

戻り値

型: String

1String s1 = 'SFDC';
2String s2 = s1.repeat(2);
3System.assertEquals('SFDCSFDC', s2);

repeat(separator, numberOfTimes)

現在の string を指定した回数だけ繰り返し、指定した区切り文字を使用して、繰り返される string を区切って返します。

署名

public String repeat(String separator, Integer numberOfTimes)

パラメーター

separator
型: String
numberOfTimes
型: Integer

戻り値

型: String

1String s1 = 'SFDC';
2String s2 = 
3   s1.repeat('-', 2);
4System.assertEquals(
5   'SFDC-SFDC', s2);

replace(target, replacement)

リテラル対象シーケンス target に一致する文字列の各サブ文字列を、指定したリテラル置換シーケンス replacement と置き換えます。

署名

public String replace(String target, String replacement)

パラメーター

target
型: String
replacement
型: String

戻り値

型: String

1String s1 = 'abcdbca';
2String target = 'bc';
3String replacement = 'xy';
4String s2 = s1.replace(target, replacement);
5System.assertEquals('axydxya', s2);

replaceAll(regExp, replacement)

正規表現 regExp に一致する文字列の各サブ文字列を、置換シーケンス replacement と置き換えます。

署名

public String replaceAll(String regExp, String replacement)

パラメーター

regExp
型: String
replacement
型: String

戻り値

型: String

使用方法

正規表現についての詳細は、Java Pattern クラスを参照してください。

1String s1 = 'a b c 5 xyz';
2String regExp = '[a-zA-Z]';
3String replacement = '1';
4String s2 = s1.replaceAll(regExp, replacement);
5System.assertEquals('1 1 1 5 111', s2);

replaceFirst(regExp, replacement)

正規表現 regExp に一致する文字列の最初のサブ文字列を、置換シーケンス replacement と置き換えます。

署名

public String replaceFirst(String regExp, String replacement)

パラメーター

regExp
型: String
replacement
型: String

戻り値

型: String

使用方法

正規表現についての詳細は、Java Pattern クラスを参照してください。

1String s1 = 'a b c 11 xyz';
2String regExp = '[a-zA-Z]{2}';
3String replacement = '2';
4String s2 = s1.replaceFirst(regExp, replacement);
5System.assertEquals('a b c 11 2z', s2);

reverse()

すべての文字を逆順にした string を返します。

署名

public String reverse()

戻り値

型: String

right(length)

現在の string の右端から指定した長さ分の文字を返します。

署名

public String right(Integer length)

パラメーター

length
型: Integer
length が string のサイズよりも大きい場合、string 全体が返されます。

戻り値

型: String

1String s1 = 'Hello Max';
2String s2 = 
3   s1.right(3);
4System.assertEquals(
5   'Max', s2);

rightPad(length)

指定した長さになるまで現在の string の右側に空白を埋め込んで返します。

署名

public String rightPad(Integer length)

パラメーター

length
型: Integer
length が現在の string サイズ以下の場合、string 全体が空白の埋め込みなしで返されます。

戻り値

型: String

1String s1 = 'abc';
2String s2 = 
3   s1.rightPad(5);
4System.assertEquals(
5   'abc  ', s2);

rightPad(length, padStr)

指定した長さになるまで右側に String padStr を埋め込んで現在の String を返します。

署名

public String rightPad(Integer length, String padStr)

パラメーター

length
型: Integer
padStr
型: String
埋め込む文字列。null または空の場合は、1 文字の空白として扱われます。

使用方法

length が現在の string サイズ以下の場合、string 全体が空白の埋め込みなしで返されます。

戻り値

型: String

1String s1 = 'abc';
2String s2 = 'xy';
3String s3 = s1.rightPad(7, s2);
4System.assertEquals('abcxyxy', s3);

split(regExp)

文字列の各サブ文字列を含むリストを返します。このサブ文字列は、正規表現 regExp、または文字列の末尾に達することで終了します。

署名

public String[] split(String regExp)

パラメーター

regExp
型: String

戻り値

型: String[]

API バージョン 34.0 以前では、ゼロ幅の regExp 値により、メソッドの出力の先頭に空のリスト項目が生成されます。

メモ

使用方法

正規表現についての詳細は、Java Pattern クラスを参照してください。

このサブ文字列は、文字列の中で発生した順序でリストに記述されます。regExp が string のどの部分にも一致しない場合、結果リストには元の文字列を含む要素が 1 つだけ含まれます。

次の例では、バックスラッシュを区切り文字として使用して、文字列を分割しています。

1public String splitPath(String filename) {
2    if (filename == null)
3        return null;
4    List<String> parts = filename.split('\\\\');
5    filename = parts[parts.size()-1];
6    return filename;
7}
8
9// For example, if the file path is e:\\processed\\PPDSF100111.csv
10// This method splits the path and returns the last part.
11// Returned filename is PPDSF100111.csv

split(regExp, limit)

文字列の各サブ文字列を含むリストを返します。このサブ文字列は、正規表現 regExp、または文字列の末尾に達することで終了します。

署名

public String[] split(String regExp, Integer limit)

パラメーター

regExp
型: String
正規表現。
limit
型: Integer

戻り値

型: String[]

API バージョン 34.0 以前では、ゼロ幅の regExp 値により、メソッドの出力の先頭に空のリスト項目が生成されます。

メモ

使用方法

(省略可能) limit パラメーターは、パターンの適用回数を制御するため、リストの長さにも影響します。
  • limit が 0 より大きい場合
    • パターンが最大回数 (limit – 1) 適用されます。
    • リストの長さは limit を超えません。
    • リストの最後のエントリに、最後に一致した区切り文字より後のすべての入力が含まれます。
  • limit が正の値でない場合は、パターンが可能な限り何回でも適用され、リストも任意の長さになります。
  • limit が 0 の場合は、パターンが可能な限り何回でも適用され、リストも任意の長さですが、末尾の空の文字列は破棄されます。

たとえば、String s = 'boo:and:moo' の場合、次のようになります。
  • s.split(':', 2){'boo', 'and:moo'} を生成します。
  • s.split(':', 5){'boo', 'and', 'moo'} を生成します。
  • s.split(':', -2){'boo', 'and', 'moo'} を生成します。
  • s.split('o', 5){'b', '', ':and:m', '', ''} を生成します。
  • s.split('o', -2){'b', '', ':and:m', '', ''} を生成します。
  • s.split('o', 0) {'b', '', ':and:m'} を生成します。

splitByCharacterType()

現在の string を文字の種別ごとに分割し、同じ種別の連続文字グループのリストを完全なトークンとして返します。

署名

public List<String> splitByCharacterType()

戻り値

型: List<String>

使用方法

使用される文字の種別についての詳細は、java.lang.Character.getType(char) を参照してください。

1String s1 = 'Lightning.platform';
2List<String> ls = 
3   s1.splitByCharacterType();
4System.debug(ls);
5// Writes this output:
6// (L, ightning, ., platform)

splitByCharacterTypeCamelCase()

現在の string を文字の種別ごとに分割し、同じ種別の連続文字グループのリストを完全なトークンとして返します。ただし、小文字トークンの直前に大文字がある場合、その大文字は直前の小文字トークンではなく後続の小文字トークンに属します。

署名

public List<String> splitByCharacterTypeCamelCase()

戻り値

型: List<String>

使用方法

使用される文字の種別についての詳細は、java.lang.Character.getType(char) を参照してください。

1String s1 = 'Lightning.platform';
2List<String> ls = 
3   s1.splitByCharacterTypeCamelCase();
4System.debug(ls);
5// Writes this output:
6// (Lightning, ., platform)

startsWith(prefix)

メソッドをコールした string が prefix で始まる場合、true を返します。

署名

public Boolean startsWith(String prefix)

パラメーター

prefix
型: String

戻り値

型: Boolean

1String s1 = 'AE86 vs EK9';
2System.assert(s1.startsWith('AE86'));

startsWithIgnoreCase(prefix)

現在の string が指定したプレフィックス (大文字と小文字を区別しない) で始まる場合は true を返します。

署名

public Boolean startsWithIgnoreCase(String prefix)

パラメーター

prefix
型: String

戻り値

型: Boolean

1String s1 = 'AE86 vs EK9';
2System.assert(s1.startsWithIgnoreCase('ae86'));

stripHtmlTags()

HTML マークアップを削除し、プレーンテキストを返します。

署名

public String stripHtmlTags()

戻り値

型: String

使用方法

stripHtmlTags 関数はタグを繰り返し削除しないため、返された文字列内にタグが残っている可能性があります。入力をサニタイズして未加工の HTML ページとして含めるために stripHtmlTags を使用しないでください。エスケープ解除されていない出力を HTML ドキュメントに含めるのは安全ではないとされています。この関数は、今後のリリースで廃止されます。

警告

1String s1 = '<b>hello world</b>';
2String s2 = s1.stripHtmlTags();
3System.assertEquals(
4   'hello world', s2);

substring(startIndex)

指定した開始値 0 の startIndex の文字で始まり string の末尾まで続く新しい string を返します。

署名

public String substring(Integer startIndex)

パラメーター

startIndex
型: Integer

戻り値

型: String

1String s1 = 'hamburger';
2System.assertEquals('burger', s1.substring(3));

substring(startIndex, endIndex)

指定した開始値 0 の startIndex の文字で始まり endIndex - 1 の文字まで続く新しい string を返します。

署名

public String substring(Integer startIndex, Integer endIndex)

パラメーター

startIndex
型: Integer
endIndex
型: Integer

戻り値

型: String

1'hamburger'.substring(4, 8); 
2// Returns "urge"
3
4'smiles'.substring(1, 5);
5// Returns "mile"

substringAfter(separator)

指定した区切り文字が最初に出現した位置より後にあるサブ文字列を返します。

署名

public String substringAfter(String separator)

パラメーター

separator
型: String

戻り値

型: String

1String s1 = 'Salesforce.Lightning.platform';
2String s2 = 
3   s1.substringAfter('.');
4System.assertEquals(
5   'Lightning.platform', s2);

substringAfterLast(separator)

指定した区切り文字が最後に出現した位置より後にあるサブ文字列を返します。

署名

public String substringAfterLast(String separator)

パラメーター

separator
型: String

戻り値

型: String

1String s1 = 'Salesforce.Lightning.platform';
2String s2 = 
3   s1.substringAfterLast('.');
4System.assertEquals(
5   'platform', s2);

substringBefore(separator)

指定した区切り文字が最初に出現した位置より前にあるサブ文字列を返します。

署名

public String substringBefore(String separator)

パラメーター

separator
型: String

戻り値

型: String

1String s1 = 'Salesforce.Lightning.platform';
2String s2 = 
3   s1.substringBefore('.');
4System.assertEquals(
5   'Salesforce', s2);

substringBeforeLast(separator)

指定した区切り文字が最後に出現した位置より前にあるサブ文字列を返します。

署名

public String substringBeforeLast(String separator)

パラメーター

separator
型: String

戻り値

型: String

1String s1 = 'Salesforce.Lightning.platform';
2String s2 = 
3   s1.substringBeforeLast('.');
4System.assertEquals(
5   'Salesforce.Lightning', s2);

substringBetween(tag)

指定した tag 文字列で囲まれたサブ文字列を返します。

署名

public String substringBetween(String tag)

パラメーター

tag
型: String

戻り値

型: String

1String s1 = 'tagYellowtag';
2String s2 = s1.substringBetween('tag');
3System.assertEquals('Yellow', s2);

substringBetween(open, close)

2 つの指定した string 間に出現したサブ文字列を返します。

署名

public String substringBetween(String open, String close)

パラメーター

open
型: String
close
型: String

戻り値

型: String

1String s1 = 'xYellowy';
2String s2 = 
3   s1.substringBetween('x','y');
4System.assertEquals(
5   'Yellow', s2);

swapCase()

デフォルトの英語 (米国) ロケールを使用して、string のすべての文字の大文字と小文字を入れ替えて返します。

署名

public String swapCase()

戻り値

型: String

使用方法

大文字およびタイトルの文字を小文字に変換し、小文字を大文字に変換します。

1String s1 = 'Force.com';
2String s2 = s1.swapCase();
3System.assertEquals('fORCE.COM', s2);

toLowerCase()

string のすべての文字を、デフォルトの英語 (米国) ロケールのルールを使用して、小文字に変換します。

署名

public String toLowerCase()

戻り値

型: String

1String s1 = 'ThIs iS hArD tO rEaD';
2System.assertEquals('this is hard to read',
3   s1.toLowerCase());

toLowerCase(locale)

string のすべての文字を、指定したロケールのルールを使用して、小文字に変換しま��。

署名

public String toLowerCase(String locale)

パラメーター

locale
型: String

戻り値

型: String

1// Example in Turkish
2// An uppercase dotted "i", \u0304, which is İ
3// Note this contains both a İ as well as a I
4String s1 = 'KIYMETLİ';
5String s1Lower = s1.toLowerCase('tr');
6// Dotless lowercase "i", \u0131, which is ı
7// Note this has both a i and ı
8String expected = 'kıymetli';
9System.assertEquals(expected, s1Lower);
10// Note if this was done in toLowerCase(‘en’), it would output ‘kiymetli’

toUpperCase()

string のすべての文字を、デフォルトの英語 (米国) ロケールのルールを使用して、大文字に変換します。

署名

public String toUpperCase()

戻り値

型: String

1String myString1 = 'abcd';
2String myString2 = 'ABCD';
3myString1 = 
4   myString1.toUpperCase();
5Boolean result = 
6   myString1.equals(myString2);
7System.assertEquals(result, true);

toUpperCase(locale)

string のすべての文字を、指定したロケールのルールを使用して、大文字に変換します。

署名

public String toUpperCase(String locale)

パラメーター

locale
型: String

戻り値

型: String

1// Example in Turkish
2// Dotless lowercase "i", \u0131, which is ı
3// Note this has both a i and ı
4String s1 = 'imkansız';
5String s1Upper = s1.toUpperCase('tr');
6// An uppercase dotted "i", \u0304, which is İ
7// Note this contains both a İ as well as a I
8String expected = 'İMKANSIZ';
9System.assertEquals(expected, s1Upper);

trim()

文字列のコピーを返します。このとき先頭と末尾の空白文字は含まれません。

署名

public String trim()

戻り値

型: String

使用方法

タブや改行文字など、先頭と末尾の ASCII 制御文字も削除されます。文の開始と終了にない空白文字と制御文字は削除されません。

1String s1 = '   Hello!   ';
2String trimmed = s1.trim();
3system.assertEquals('Hello!', trimmed);

uncapitalize()

現在の string の最初の文字を小文字にして返します。

署名

public String uncapitalize()

戻り値

型: String

1String s1 = 
2   'Hello max';
3String s2 = 
4   s1.uncapitalize();
5System.assertEquals(
6   'hello max', 
7    s2);

unescapeCsv()

エスケープ解除された CSV 列を表す string を返します。

署名

public String unescapeCsv()

戻り値

型: String

使用方法

文字列が二重引用符で囲まれていてカンマ、改行、または二重引用符が含まれる場合、二重引用符は削除されます。また、二重引用符でエスケープされた文字 (二重引用符のペア) は、エスケープが解除されて 1 つの二重引用符になります。

文字列が二重引用符で囲まれていない場合、または二重引用符で囲まれていてカンマ、改行、二重引用符が含まれない合、string が変更されずに返されます。

1String s1 = 
2   '"Max1, ""Max2"""';
3String s2 = 
4   s1.unescapeCsv();
5System.assertEquals(
6   'Max1, "Max2"', 
7    s2);

unescapeEcmaScript()

string 内にある EcmaScript リテラルのエスケープを解除します。

署名

public String unescapeEcmaScript()

戻り値

型: String

1String s1 = 
2   '\"3.8\",\"3.9\"';
3String s2 = 
4   s1.unescapeEcmaScript();
5System.assertEquals(
6   '"3.8","3.9"',
7   s2);

unescapeHtml3()

HTML 3.0 エンティティを使用して string 内の文字のエスケープを解除します。

署名

public String unescapeHtml3()

戻り値

型: String

1String s1 = 
2   '&quot;&lt;Black&amp;White&gt;&quot;';
3String s2 = 
4   s1.unescapeHtml3();
5System.assertEquals(
6   '"<Black&White>"',
7   s2);

unescapeHtml4()

HTML 4.0 エンティティを使用して string 内の文字のエスケープを解除します。

署名

public String unescapeHtml4()

戻り値

型: String

使用方法

認識されない場合、エンティティは返された文字列でそのまま保持されます。

1String s1 = 
2   '&quot;&lt;Black&amp;White&gt;&quot;';
3String s2 = 
4   s1.unescapeHtml4();
5System.assertEquals(
6   '"<Black&White>"',
7   s2);

unescapeJava()

Java リテラルをエスケープ解除した文字列を返します。エスケープ解除されるリテラルには、引用符 (\\") や、タブ (\\t)、改行文字 (\\n) のような制御文字のエスケープシーケンスなどがあります。

署名

public String unescapeJava()

戻り値

型: String

エスケープ解除された文字列。

1String s = 'Company: \\"Salesforce.com\\"';
2String unescapedStr = s.unescapeJava();
3System.assertEquals('Company: "Salesforce.com"', unescapedStr);

unescapeUnicode()

エスケープされた Unicode 文字をエスケープ解除した文字列を返します。

署名

public String unescapeUnicode()

戻り値

型: String

エスケープ解除された文字列。

1String s = 'De onde voc\u00EA \u00E9?';
2String unescapedStr = s.unescapeUnicode();
3System.assertEquals('De onde você é?', unescapedStr);

unescapeXml()

XML エンティティを使用して string 内の文字のエスケープを解除します。

署名

public String unescapeXml()

戻り値

型: String

使用方法

5 つの基本 XML エンティティ (gt、lt、quot、amp、apos) のみをサポートします。DTD または外部エンティティはサポートしていません。

1String s1 = 
2   '&quot;&lt;Black&amp;White&gt;&quot;';
3String s2 = 
4   s1.unescapeXml();
5System.assertEquals(
6   '"<Black&White>"',
7   s2);

valueOf(dateToConvert)

指��した date を表す string を、標準の「yyyy-MM-dd」形式で返します。

署名

public static String valueOf(Date dateToConvert)

パラメーター

dateToConvert
型: Date

戻り値

型: String

1Date myDate = Date.Today();
2String sDate = String.valueOf(myDate);

valueOf(datetimeToConvert)

指定した datetime を表す string を、ローカルタイムゾーンの標準「yyyy-MM-dd HH:mm:ss」形式で返します。

署名

public static String valueOf(Datetime datetimeToConvert)

パラメーター

datetimeToConvert
型: Datetime

戻り値

型: String

1DateTime dt = datetime.newInstance(1996, 6, 23);
2String sDateTime = String.valueOf(dt);
3System.assertEquals('1996-06-23 00:00:00', sDateTime);

valueOf(decimalToConvert)

指定された decimal を表す string を返します。

署名

public static String valueOf(Decimal decimalToConvert)

パラメーター

decimalToConvert
型: Decimal

戻り値

型: String

1Decimal dec = 3.14159265;
2String sDecimal = String.valueOf(dec);
3System.assertEquals('3.14159265', sDecimal);

valueOf(doubleToConvert)

指定された double を表す string を返します。

署名

public static String valueOf(Double doubleToConvert)

パラメーター

doubleToConvert
型: Double

戻り値

型: String

1Double myDouble = 12.34;
2String myString = 
3   String.valueOf(myDouble);
4System.assertEquals(
5  '12.34', myString);

valueOf(integerToConvert)

指定された integer を表す string を返します。

署名

public static String valueOf(Integer integerToConvert)

パラメーター

integerToConvert
型: Integer

戻り値

型: String

1Integer myInteger = 22;
2String sInteger = String.valueOf(myInteger);
3System.assertEquals('22', sInteger);

valueOf(longToConvert)

指定された long を表す string を返します。

署名

public static String valueOf(Long longToConvert)

パラメーター

longToConvert
型: Long

戻り値

型: String

1Long myLong = 123456789;
2String sLong = String.valueOf(myLong);
3System.assertEquals('123456789', sLong);

valueOf(toConvert)

指定したオブジェクトの引数の文字列表現を返します。

署名

public static String valueOf(Object toConvert)

パラメーター

toConvert
型: Object

戻り値

型: String

使用方法

引数が string でない場合、valueOf メソッドはその引数に対する toString メソッド (利用可能な場合)、または引数がユーザー定義型の場合は上書きされた toString メソッドをコールすることで、引数を string に変換します。それ以外の、toString メソッドが利用できない場合は引数の文字列表現を返します。

1List<Integer> ls = 
2  new List<Integer>();
3ls.add(10);
4ls.add(20);
5String strList = 
6   String.valueOf(ls);
7System.assertEquals(
8  '(10, 20)', strList);

valueOfGmt(datetimeToConvert)

指定した datetime を表す string を、GMT タイムゾーンの標準「yyyy-MM-dd HH:mm:ss」形式で返します。

署名

public static String valueOfGmt(Datetime datetimeToConvert)

パラメーター

datetimeToConvert
型: Datetime

戻り値

型: String

1// For a PST timezone:
2DateTime dt = datetime.newInstance(2001, 9, 14);
3String sDateTime = String.valueOfGmt(dt);
4System.assertEquals('2001-09-14 07:00:00', sDateTime);