Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Javaにおける文字列からの情報抽出 | 文字列
Java入門

Javaにおける文字列からの情報抽出

メニューを表示するにはスワイプしてください

実際のアプリケーションでテキストを扱う場合、文字列全体が必要になることはほとんどありません。多くの場合、必要なのはその一部だけです。メール内の名前、注文メッセージ内の商品、文中に隠された特定のキーワードなどです。Java には、必要な部分だけを正確に抽出できるシンプルかつ強力なツールが用意されています。

substring()

文字位置に基づいて文字列の「スライス」を取得したい場合は、.substring() を使用します。ゼロベースのインデックス(カウントは 0 から開始)に依存します。新しい String を返します。

Main.java

Main.java

123456789101112
package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; String drinkName = order.substring(6, 11); System.out.println(drinkName); } }

substring(6, 11) は、Java にインデックス 6(含む)からインデックス 11(含まない)まで開始するよう指示します。つまり、位置 6 から 10 までの文字を抽出し、結果は "Latte" となります。

substring(start) のように引数を1つだけ指定した場合、Java はその位置から文字列の末尾までを抽出します:

order.substring(6); // "Latte with oat milk"

indexOf()

文字列内で特定のテキストがどこにあるかを調べたい場合は、.indexOf() を使用します。テキストを切り取るのではなく、位置を特定します。マッチした部分の開始インデックスを表す int を返します。

Main.java

Main.java

123456789101112
package com.example; public class Main { public static void main(String[] args) { String order = "Large Latte with oat milk"; int lattePosition = order.indexOf("Latte"); System.out.println(lattePosition); } }

Javaは文字列を左から右にスキャンし、"Latte"を見つけるとその最初の文字の位置—6—を返します。文字列内に該当するテキストが見つからない場合、Javaは-1を返します。

両方の組み合わせ — 実例

この実例では、indexOf()substring()を組み合わせて、メールアドレスからユーザー名を抽出します。

Main.java

Main.java

1234567891011121314
package com.example; public class Main { public static void main(String[] args) { String customerEmail = "anna.coffee@gmail.com"; int atPosition = customerEmail.indexOf("@"); String username = customerEmail.substring(0, atPosition); System.out.println(username); } }

indexOf("@")@ 記号の位置を検出し、次に substring(0, atPosition) で文字列の先頭から — ただし @ を含めずに — その直前までを抽出します。結果は "anna.coffee" です。位置をハードコーディングせず、Java に境界を特定させて必要な部分を正確に抽出します。

question mark

Java における substring(start, end) の動作は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  7

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  7
some-alt