カテゴリー
Python

文字列に関する色々なメソッドを知ろう

この章では文字列を他の文字列に変換したり、大文字を小文字に変換したりするメソッドなどについて説明します。
初めに一部の文字列を他の文字列に変換する方法について説明します。
では例をみてみましょう。9 一部分の文字列を他の文字列に変換するにはreplaceメソッドを使用します。9 99そして、最後に9と出力していますが、結果は文字を入れ替えたのにも関わらず9となっています。
なぜここで9を出力させているかといいますと、前の過程で文字列の一部をreplaceで変更しましたが、これは元の文字列まで変更させているわけではないことを確認して欲しかったからです。
結果は以下の通りです。9 下の例はreplaceで変更したものをstr2に入れて出力していますが、先ほどの例と結果は同じです。
変更したものを他で使いたい場合には変数に入れてください。9

次は文字列を大文字にしたり、小文字にしたりする方法について説明します。
文字列を大文字にするにはupperメソッド,文字列を小文字にするにはlowerメソッドを使います。
では例をみてみましょう。9 基本構文は以下の通りです。9 これもreplaceと同じく、元の文字列まで変更させているわけではありません。
結果は以下の通りです。9
次の例は変更したものをstr3とstr4に入れて出力していますが、先ほどの例と結果は同じです。
変更したものを他で使いたい場合には変数に入れてください。9
次はsplitメソッドについて説明します。
では例をみてみましょう。9 splitメソッドは文字列を指定した区切り文字で区切って、その結果をリストとして返してくれます。
この例では文字列の中の9で区切っています。
9splitメソッドもreplaceと同じく、元の文字列まで変更させているわけではありません。
結果は以下の通りですが、区切った結果がリストになっているのが分かります。9
次は文字列の検索方法について説明します。
初めに文字列の先頭が指定した文字であるかを調べます。
では例をみてみましょう。9
startswithは文字列の先頭が「指定した文字列」であればtrue、そうでないならばfalseを返します。9 結果は次の通りです。9 startswithメソッドは以下のようなif文などで使われます。9
次は文字列中に指定の文字が含まれているかを調べる方法について説明します。
では例をみてみましょう。9
文字列中に指定した文字列が含まれているかどうかを調べます。
含まれていればtrueを、含まれていなければfalseを返します。
9結果は以下の通りです。9 「in」もstartswithと同じくif文などで使います。9 結果は次の通りです。9

カテゴリー
Java

文字列を操作するメソッドを知ろう

この章では文字列に関するメソッドについて説明します。
先ほどは自身でメソッドを作成しましたが、ここで説明するメソッドはJavaであらかじめ用意されているメソッドです。
Javaのメソッドの仕組みはエクセルの関数の仕組みと意味は同じです。
エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。例えば指定した範囲の引数が3,5,7であるならば結果は15です。
SUMには初めから指定した範囲の足し算を行うと言う仕組みが備わっています。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
Javaにはこのように機能が定義されているメソッドが多数ありますので、この章では文字列に関係するメソッドを取り上げたいと思います。
例えば文字列の一部を取り出したり、文字列の長さを計るメソッドです。
次の例ではユーザーに入力させた文字が反対から読んでも同じ文字かどうかを判定するプログラムです。
プログラムの流れは以下の通りです。
〇ユーザーに文字を入力させる
〇入力した文字を反対に並び替える
〇ユーザーが入力した文字と反対に並び替えた文字が同じかどうかを比べる。
では例をみてみましょう。1111 では順番に解説をしていきます。
〇ユーザーに文字を入力させるのですが、ユーザーに入力させるためには以下の記述が必要であることは「if文で星座を判定しよう」で説明しました(BufferedReaderクラスの説明は「キーボードの入力の値を受け取ろう」で説明します)。1 ここではユーザーに入力させた文字をa変数に入れているということを確認してください。
〇次は入力した文字を反対に並び換えます。
入力した文字をcharAtメソッドを使用して、末尾から一文字ずつ取り出して反対文字を作成します。
charAtメソッドは指定した位置にある文字を取り出すメソッドですが、基本構文は以下の通りです。1 例えば「ANA」と入力したとします。
末尾のAを取り出したい場合には1と書きます。
数え方は前から0,1,2…と数えます。1から数えるわけではないので気を付けてください。1 では次の箇所の説明をします。1 charAtのカッコの中の1は文字列の長さを取得しています。1 「ANA」をline.length()で取得すると文字列の長さは3になります。
この例ではfor文で回しているので、iには0から順に数字が入ります。1 文字列の長さから1を引くことで文字列の末尾から順にmoji変数に入れることが出来ます。
moji変数には1文字しか入れないのでデータ型はcharにします。
そして以下のhantai変数にmoji変数の要素をつなげています。
hantai += moji;

〇以下の箇所でユーザーが入力した文字と反対に並び替えた文字が同じかどうかを比べています。
文字列同士を比べているのでequalsを使っています。1 結果は「ANA」と入力したとすると以下のとおり出力されます。1
では次の例を見てみましょう。11 この例は変数mojiが指定した文字で始まっているのか、もしくは指定した文字で終わっているのかを確認するメソッドを使っています。
指定した文字で始まっているのかを調べるメソッドはstartsWithメソッドであり、指定した文字で終わっているのかを調べるにはendsWithメソッドを使います。1 startsWithメソッドの場合は指定した文字で始まっていればRUEを返し、そうでないならばFALSEを返します。
endsWithメソッドの場合は指定した文字で終わっていればTRUEを返し、そうでないならばFALSEを返します。
構文のstartsWithの中の1には整数を入れるのですが、確認したい文字列が1から始まっているのかを調べます。
では説明を始めます。1 =>moji変数はkoから始まっているので、TRUEです。

1 => moji変数はdoから始まっていないので、FALSEです。

1 =>3は「kondou」の前から数えてdの位置です。
doが3の位置から始まっているのかを調べていますので、TRUEです。

1 => moji変数はouで終わっているので、TRUEです。

1 => moji変数はdoで終わっていないので、FALSEです。
例えばこれらのメソッドは以下のように条件式で使います。1 もし、条件式がTRUEであれば、if文を実行して、FALSEであればif文を実行しません。

次はindexOfメソッド、lastIndexOfメソッド、substringメソッド、splitメソッドについて説明します。
では例をみてみましょう。111 初めにindexOfメソッドについて説明します。1 indexOfメソッドは文字列の中で指定した文字列が初めに何番目に現れるかを0から数えた位置番号で返します。
指定した文字列が見つからない場合は「-1」を返します。1 indexOfの第2引数に検索を開始する位置番号がありますが、これは第2引数で指定した位置から検索を始めることを意味します。
初めに第1引数のみを指定した場合の例を見てみましょう。1 =>「”penpenpen”」の中で1が初めに見つかった位置を返すので、0がbに入ります。以下の赤で囲まれている位置に一致するので0を返します。1 次に第1引数と第2引数を指定した場合の例を見てみましょう。1 => indexOfに第2引数がありますが、これは第 2引数で指定した位置から検索を始めることを意味します。
この例では3なので、前から4番目の位置から、指定した「”pen”」のある位置を探して、その位置番号を返します。
つまり、以下の位置から検索を始めるので、結果は3です。1

次はsubstringメソッドについて説明します。1 文字列の中で第1引数に指定した開始位置番号から末尾までの新しい文字列を返します。1 第1引数と第2引数の両方を指定した場合は、第1引数で指定した位置から第2引数で指定した位置から1を引いた位置までの新しい文字列を返します。
初めに第1引数のみを指定した場合の例を見てみましょう。1 =>bには0が入っていますので、先頭から末尾までの文字列を返しますので、結果は1です。
indexOf で位置を確認して、substringで文字列を取り出すケースがよくありますので覚えておいてください。
次の例をみてみましょう。1 substring は bの位置から末尾までの文字列を返すので、結果は1です。
次は第1引数と第2引数を指定した場合の例を見てみましょう。1 第1引数と第2引数の両方を指定した場合は第1引数で指定した位置から第2引数で指定した位置から1を引いた位置までの新しい文字列を返しますので結果は1です。
第2引数は指定した位置から1を引いた位置までなので、eまでではなくて、dまでですので気を付けてください。

次はlastIndexOfメソッドについて説明します。1 lastIndexOfメソッドは文字列の中で指定した文字列が最後に何番目に現れるかを0から数えた位置番号で返します。
指定した文字列が見つからない場合は「-1」を返します。1 lastIndexOfの検索を開始する位置番号はこの指定した位置から先頭に向かって検索を始めることを意味します。
初めに第1引数のみを指定した場合の例を見てみましょう。1 =>「”pen”」が最後に現れる箇所なので、lastIndexOfは6を返します。
bには6が入っているので、substringは「pen」を返します。
次に第1引数と第2引数を指定した場合の例を見てみましょう。
(下の例は先ほどのプログラムにはありません)1 第 2引数は4なので、sの位置から左に検索をかけて、初めに見つかったaの位置を返しますので、結果は3です。1 次はsplitメソッドについて説明します。1 splitメソッドは指定した文字列で分割して、その分割したものを配列で返します。1
「指定した文字列」は「,」なので、これを基準に文字列を分割します。
そして、その分割したものを配列sに入れます。
結果は以下の通りです。
1=>abc
2=>def
3=>g