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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn