Java 改行コード・タブコードを置換する方法 - クラス String
Javaで改行コード・タブコードを置換する方法です。
文字列の置換するメソッドといえば replace
メソッド replaceAll
メソッドを使用しますね。改行コードやタブコードを置換する方法も同じです。
ここでは Javaで改行コード・タブコードを置換する方法 を紹介します。
Sponsored Links
目次
replaceAllメソッドの仕様
replaceAllメソッドの仕様は下記の通りです。
String result = "対象文字列".replaceAll("正規表現", "置換文字列");
Sponsored Links
replaceAllメソッドのテスト
replaceAllメソッドをテストしてみます。
System.out.println("1. "+"AtC".replaceAll("t", "B")); System.out.println("2. "+"AnC".replaceAll("n", "B")); System.out.println("3. "+"ArnC".replaceAll("rn", "B")); System.out.println("4. "+"ArnC".replaceAll("n", "B"));
結果は以下の通りです。
1. ABC 2. ABC 3. ABC 4. A BC
他にも、Pattern
クラスと Matcher
クラスを利用することで可能となります。
PatternクラスとMatcherクラスの仕様
PatternクラスとMatcherクラスの仕様は下記の通りです。
Pattern pt = Pattern.compile("正規表現"); Matcher match = pt.matcher("対象文字列"); String result = match.replaceAll("置換文字列");
一行で書くこともできます。
String result = Pattern.compile("正規表現").matcher("対象文字列").replaceAll("置換文字列");
Sponsored Links
Pattern.compileメソッドのテスト
Pattern.compileを利用した場合のテストです。
System.out.println("1. "+Pattern.compile("t").matcher("AtC").replaceAll("B")); System.out.println("2. "+Pattern.compile("n").matcher("AnC").replaceAll("B")); System.out.println("3. "+Pattern.compile("rn").matcher("ArnC").replaceAll("B")); System.out.println("4. "+Pattern.compile("n").matcher("ArnC").replaceAll("B"));
結果は以下の通りです。
1. ABC 2. ABC 3. ABC 4. A BC
いづれのケースも対象文字列が null
の場合 NullPointerException
が発生します。実務で利用する場合は、様々なケースが想定されますので、以下のようなメソッドを用意し、対応することをお勧めします。
replaceAllRegexメソッドを作る
独自メソッドを作ってみました。
/** * 指定された正規表現に一致する場合、対象文字列で置換します。 * * @param value 処理対象となる文字列 * @param regex 正規表現 * @param replacement 置換文字列 * @return 置換後の配列 */ public static String replaceAllRegex(String value, String regex, String replacement) { if ( value == null || value.length() == 0 || regex == null || regex.length() == 0 || replacement == null ) return ""; return Pattern.compile(regex).matcher(value).replaceAll(replacement); }
早速テストしてみましょう。
System.out.println("1. "+StringUtils.replaceAllRegex(null, "*", "*")); System.out.println("2. "+StringUtils.replaceAllRegex("", "*", "*")); System.out.println("3. "+StringUtils.replaceAllRegex("AtC", "t", "B")); System.out.println("4. "+StringUtils.replaceAllRegex("AnC", "n", "B")); System.out.println("5. "+StringUtils.replaceAllRegex("ArnC", "rn", "B")); System.out.println("6. "+StringUtils.replaceAllRegex("ArnC", "n", "B"));
結果は以下の通りです。
1. 2. 3. ABC 4. ABC 5. ABC 6. A BCこれで、対象文字列が
null
の場合でも例外が発生せず、後続の処理が動作できますね。Sponsored Links
まとめ
Javaで改行コード・タブコードを置換する方法を紹介しました。
環境によっては、改行コードが、"n"
の場合と、"rn"
の場合があります。"n"
だと思って置換したら置換できず、実は "rn"
だった・・なんてことでハマるかもしれません。くれぐれもご注意を。
おつかれさまでした。
Sponsored Links