1. 文字列の比較
文字列を使用した最も一般的な操作の 1 つは比較です。String クラスには、ある文字列と別の文字列を比較するために使用される 10 を超える異なるメソッドがあります。以下では主なものを7つ紹介します。
メソッド | 説明 |
---|---|
|
すべての文字が一致する場合、文字列は等しいとみなされます。 |
|
文字の大文字と小文字を無視して文字列を比較します(大文字か小文字かを無視します)。 |
|
文字列を辞書順に比較します。文字列が等しい場合は 0 を返します。現在の文字列が文字列パラメータより小さい場合、戻り値は 0 より小さくなります。現在の文字列が文字列パラメータより大きい場合、戻り値はより大きくなります。 |
|
大文字と小文字を区別せずに文字列を辞書順に比較します。文字列が等しい場合は 0 を返します。現在の文字列が文字列パラメータより小さい場合、戻り値は負になります。現在の文字列が文字列パラメータより大きい場合、戻り値はより大きくなります。 |
|
文字列の一部を比較します |
|
現在の文字列が次の文字列で始まるかどうかを確認します。prefix |
|
現在の文字列が次の文字列で終わるかどうかを確認します。suffix |
ユーザーにファイルへのパスを要求し、拡張子に基づいてファイルの種類をチェックするプログラムを作成するとします。このようなプログラムのコードは次のようになります。
コード | ノート |
---|---|
|
Scanner オブジェクトを作成するコンソールから行を読み取る 文字列が指定された文字列で終わる かどうかを確認する path |
2. 部分文字列の検索
文字列の比較に次いで 2 番目によく使用される操作は、ある文字列の中にある別の文字列を見つけることです。String クラスには、これを行うためのメソッドもいくつかあります。
メソッド | 説明 |
---|---|
|
現在の文字列内の文字列を検索しますstr 。最初に出現した最初の文字のインデックスを返します。 |
|
str 最初の文字をスキップして、現在の文字列内の文字列を検索しますindex 。オカレンスのインデックスを返します。 |
|
現在の文字列内の文字列をstr 末尾から検索します。最初に出現したインデックスを返します。 |
|
現在の文字列の先頭の文字をスキップstr して、末尾からindex 文字列を検索します。 |
|
現在の文字列が正規表現で指定されたパターンと一致するかどうかを確認します。 |
indexOf(String)
と のメソッドindexOf(String, index)
は組み合わせて使用されることがよくあります。最初の方法では、現在の文字列内で渡された部分文字列が最初に出現する箇所を検索します。2 番目の方法では、最初のインデックス文字をスキップして、2 番目、3 番目などの出現箇所を検索できます。
「 https://domain.com/about/reviews 」のような URL があり、ドメイン名を「codegym.cc」に置き換えたいとします。URL にはさまざまな種類のドメイン名を付けることができますが、次のことがわかっています。
- ドメイン名の前には 2 つのスラッシュ ("
//
" ) が付きます。 - ドメイン名の後には 1 つのスラッシュ ("
/
" ) が続きます。
このようなプログラムのコードは次のようになります。
コード | ノート |
---|---|
|
Scanner オブジェクトを作成します。 コンソールから行を読み取ります。 文字列 " // "の最初の出現箇所のインデックスを取得します。文字列の最初の出現箇所のインデックスを取得します / が、文字の出現後のみを調べます// 。文字の先頭から末尾までの文字列を取得します。 // 文字列の先頭から / 末尾までを取得します。文字列と新しいドメインを連結します。 |
メソッドlastIndexOf(String)
とlastIndexOf(String, index)
メソッドは同じように機能しますが、文字列の末尾から先頭まで検索が実行されるだけです。
3. 部分文字列の作成
文字列の比較と部分文字列の検索に加えて、文字列から部分文字列を取得するという非常に一般的なアクションがもう 1 つあります。偶然ですが、前の例では、substring()
文字列の一部を返すメソッド呼び出しを示しました。
現在の文字列から部分文字列を返す 8 つのメソッドのリストを次に示します。
メソッド | 説明 |
---|---|
|
インデックス範囲で指定された部分文字列を返しますbeginIndex..endIndex 。 |
|
現在の文字列を n 回繰り返します |
|
新しい文字列を返します。文字をoldChar 文字に置き換えます。newChar |
|
現在の文字列内の正規表現で指定された最初の部分文字列を置き換えます。 |
|
現在の文字列内の正規表現に一致するすべての部分文字列を置き換えます。 |
|
文字列を小文字に変換します |
|
文字列を大文字に変換します |
|
文字列の先頭と末尾にあるすべてのスペースを削除します |
利用可能な方法の概要は次のとおりです。
substring(int beginIndex, int endIndex)
方法
このsubstring
メソッドは、現在の文字列内の文字で構成される新しい文字列を返します。この文字列は、インデックスを持つ文字から始まり でbeginIndex
終わりますendIndex
。Java のすべての間隔と同様に、インデックス付きの文字はendIndex
間隔に含まれません。例:
コード | 結果 |
---|---|
|
|
|
|
|
|
|
|
パラメーターが指定されていない場合endIndex
(これは可能です)、beginIndex の文字から文字列の末尾までの部分文字列が取得されます。
repeat(int n)
方法
repeat メソッドは、現在の文字n
列を単純に繰り返します。例:
コード | 結果 |
---|---|
|
|
|
|
|
|
|
|
replace(char oldChar, char newChar)
方法
このメソッドは、すべての文字が文字 に置き換えられたreplace()
新しい文字列を返します。これによって文字列の長さは変わりません。例:oldChar
newChar
コード | 結果 |
---|---|
|
|
|
|
|
|
|
|
replaceFirst()
とreplaceAll()
メソッド
このreplaceAll()
メソッドは、出現する 1 つの部分文字列をすべて別の部分文字列に置き換えます。このreplaceFirst()
メソッドは、渡された部分文字列の最初の出現を指定された部分文字列に置き換えます。置換する文字列は正規表現で指定します。Java マルチスレッドのクエストでは正規表現について詳しく説明します。
例:
コード | 結果 |
---|---|
|
|
|
|
|
|
|
|
toLowerCase() and toUpperCase()
メソッド
これらのメソッドについては、クラスのメソッドの呼び出しについて初めて学んだときに知りましたString
。
trim()
方法
このtrim()
メソッドは、文字列から先頭と末尾のスペースを削除します。文字列内のスペースには触れません (つまり、先頭または末尾にありません)。例:
コード | 結果 |
---|---|
|
|
|
|
|
|
|
|
GO TO FULL VERSION