Javaで文字列操作をする方法

プログラミングの基本中の基本である文字列に関する処理で勉強になったことがあったので備忘録。
 
先日、企業の方にJavaの正規表現を用いたパターンマッチについて教えていただいた。こんな便利なモノがあるとは知らなかった。
 
調べたところ、文字列から検索処理(表現が適切じゃないかも)を行う方法は代表的なもので2つあるようだ。
 
1つ目はfor文 + charAt関数を使った処理方法、2つ目は正規表現 + パターンマッチを使った処理方法である。
 
 
for文 + charAt関数を使った処理方法のサンプルソース:
 

public class mojihikaku {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		String str = "abcde";
		for(int i=0; i != str.length();i++){
			if(str.charAt(i) == 'c'){
				System.out.println(+i+1+"文字目はマッチしました。");
			}else{
				System.out.println(+i+1+"文字目はマッチしません。");
			}
		}
	}
}

 
上記はString型のstrにcという文字が含まれているかを判定しているサンプルソースである。charAt関数を使うので文字列型(“”)ではなく、文字型(”)として比較する。
 
 
正規表現 + パターンマッチを使った処理方法のサンプルソース:
 

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class seikihyougen_sample {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		String str1 = "poebon";
		String str2 = "osabcd";
		String str3 = "abcdef";
	//"e"で始まり任意の文字が0回以上繰り返された後で"o"が出現する」というパターン
		String regex1 = "e.*o";
	//abcという連続した文字列が含まれるかどうかを調べるパターン
		String regex2 = "abc";
	//ターゲット文字列の先頭から現れるかどうかを調べるパターン
		String regex3 = "^abc";
		Pattern p = Pattern.compile(regex3);
                Matcher m = p.matcher(str3);
		if (m.find()){
		  System.out.println("マッチしました");
		}else{
		  System.out.println("マッチしません");
		}
	}

}

 
MatcherクラスとPatternクラスを用いて、文字列の比較を行う。文字列中に含まれている、”.*”や”^”が正規表現と呼ばれるものである。
 
 
以上
 
 
参考
執筆当時は参考資料を記事に付随していなかったっぽい。

Article written by

コメントを残す