Java で文字列を解析する

Rupam Yadav 2023年10月12日
  1. Java で split メソッドを使って文字列を解析する
  2. Java で Scanner を使って文字列を解析する
  3. Java で StringUtils を使用して文字列を解析する
Java で文字列を解析する

このチュートリアルでは、さまざまな方法を使用して Java で文字列を解析する方法について説明します。解析とは、文字列を取得して処理し、情報を抽出するプロセスです。

Java で split メソッドを使って文字列を解析する

String クラスの split() メソッドは、元の文字列を変更せずにソース文字列を分割することで機能し、元の文字列のサブ文字列の配列を返します。この方法には 2つのバリエーションがあります。

split(String regex) メソッドは、文字列型の正規表現を引数として受け取り、正規表現の一致を中心に文字列を分割します。正規表現が元の文字列のどの部分とも一致しない場合、正規表現は 1つの要素(ソース文字列)を持つ配列を返します。

split(String regex, int limit) メソッドは同じように機能しますが、limit を取ります。これは、返される文字列の数を意味します。制限が負の場合、制限が 0 のときに返される配列には、できるだけ多くのサブ文字列を含めることができます。配列には、末尾の空の文字列を除くすべてのサブ文字列が含まれます。

public class StringTest {
  public static void main(String args[]) {
    String source1 = "March032021";
    String[] returnedArray1 = source1.split("\\d+");
    for (String str1 : returnedArray1) {
      System.out.println(" Output1 : " + str1);
    }
    String source2 = "950-003-123-900-456 : 11 _343-1 789----";
    String[] returnedArray2 = source2.split("-", 4);
    for (String str2 : returnedArray2) {
      System.out.println(" Output2 : " + str2);
    }
  }
}

出力:

Output1 : March
 Output2 : 705
 Output2 : 103
 Output2 : 102
 Output2 : 456-123 : 112 _343-1 789----

Java で Scanner を使って文字列を解析する

Scanner は通常、正規表現を使用してプリミティブ型と文字列を解析するために使用されます。デフォルトで一致する空白である区切り文字パターンを使用して、入力をトークンに分割します。

指定された文字列オブジェクトを使用して Scanner を作成します。Scanner クラスの useDelimiter() メソッドは、区切り文字パターンを設定するために使用されます。Pattern オブジェクトまたは文字列をパターンとして渡すことができます。文字列のすべてのトークンを取得するには、hasNext() メソッドを使用してトークンをループし、出力を出力します。

import java.util.Scanner;
public class StringTest {
  public static void main(String args[]) {
    String text = "John Evans was born on 25-08-1980";
    Scanner scanner = new Scanner(text);
    scanner.useDelimiter("born");
    while (scanner.hasNext()) {
      System.out.println("Output is : " + scanner.next());
    }
  }
}

出力:

Output is : John Evans was 
Output is :  on 25-08-1980

Java で StringUtils を使用して文字列を解析する

Apache Commons StringUtils クラスは、文字列の操作を容易にするツールを提供します。このライブラリを追加するための Maven の依存関係を以下に示します。

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

StringUtils クラスの substringBetween(String str, String open, String close) メソッドを使用して、指定された文字列を解析します。このメソッドは、2つの文字列の間にネストされた部分文字列を抽出します。

import org.apache.commons.lang3.StringUtils;

public class StringTest {
  public static void main(String args[]) {
    String source = "The crazy brown dog jumps over the fence";
    String[] stringArray = StringUtils.substringsBetween(source, "crazy", "over");
    for (String s : stringArray) {
      System.out.println("Output : " + s);
    }
  }
}

出力:

Output :  brown dog jumps 
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java String