Java 改行コード・タブコードを置換する方法 - クラス String ホームページ制作 | 墨田区

Java 改行コード・タブコードを置換する方法 – クラス String

LINEで送る
Pocket

文字列の置換するメソッドといえば、replace メソッド replaceAll メソッドを使用しますね。
改行コードやタブコードを置換する方法も同じです。

String result = "対象文字列".replaceAll("正規表現", "置換文字列");

他にも、Pattern クラスと Matcher クラスを利用することで可能となります。

Pattern pt = Pattern.compile("正規表現");
Matcher match = pt.matcher("対象文字列");
String result = match.replaceAll("置換文字列");

一行で書くこともできます。

String result = Pattern.compile("正規表現").matcher("対象文字列").replaceAll("置換文字列");




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・



早速テストしてみましょう。

replaceAll を利用した場合

System.out.println("1. "+"A\tC".replaceAll("\t", "B"));
System.out.println("2. "+"A\nC".replaceAll("\n", "B"));
System.out.println("3. "+"A\r\nC".replaceAll("\r\n", "B"));
System.out.println("4. "+"A\r\nC".replaceAll("\n", "B"));

結果は以下の通りです。
1. ABC
2. ABC
3. ABC
4. A
BC

Pattern.compile を利用した場合

System.out.println("1. "+Pattern.compile("\t").matcher("A\tC").replaceAll("B"));
System.out.println("2. "+Pattern.compile("\n").matcher("A\nC").replaceAll("B"));
System.out.println("3. "+Pattern.compile("\r\n").matcher("A\r\nC").replaceAll("B"));
System.out.println("4. "+Pattern.compile("\n").matcher("A\r\nC").replaceAll("B"));

結果は以下の通りです。
1. ABC
2. ABC
3. ABC
4. A
BC

いづれのケースも対象文字列が null の場合、NullPointerException が発生します。
実務で利用する場合は、様々なケースが想定されますので、以下のようなメソッドを用意し、対応することをお勧めします。

/**
 * 指定された正規表現に一致する場合、対象文字列で置換します。
 *
 * @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("A\tC", "\t", "B"));
System.out.println("4. "+StringUtils.replaceAllRegex("A\nC", "\n", "B"));
System.out.println("5. "+StringUtils.replaceAllRegex("A\r\nC", "\r\n", "B"));
System.out.println("6. "+StringUtils.replaceAllRegex("A\r\nC", "\n", "B"));

結果は以下の通りです。
1. 
2. 
3. ABC
4. ABC
5. ABC
6. A
BC

これで、対象文字列が null の場合でも例外が発生せず、後続の処理が動作できますね。
 環境によっては、改行コードが、"\n" の場合と、"\r\n" の場合があります。
"\n" だと思って置換したら置換できず、実は "\r\n" だった・・なんてことでハマるかもしれません。
くれぐれもご注意を。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

Javaの勉強が思うように進まないときは!

Javaの勉強が思うように進まないのであれば、プロに直接質問ができる プログラミングスクール を検討してみてはいかがでしょうか?プログラミングスクールに申し込めば、短期間で一定のスキルを身に着けることができます!

Javaコースあり!オンライン完結型 テックアカデミー TechAcademy [テックアカデミー]

どこかに通う必要なく、自宅でプログラミングやアプリ開発を学ぶことができるのが特徴のスクールです。未経験からプロになるまで最短4週間という、超短期集中型の学習ができます。年齢層は10代〜40代の男女が中心で、学引があり多くの学生が受講しているそうですよ。オンラインで受講ができるスクールですので、全国どこからでも学習ができますね。

更にさらに、パーソナルメンターにチャット質問できちゃうんです!!

これは素晴らしいことですよ!ハマったり困ったことが起こるのがプログラミングの世界。知っている誰かに聞けば数分で解決することが、自分だけだと何時間もかかったりしますから!いや、これホントですよ。

しかし、便利な世の中になりましたよねー。一昔前ではオンラインで学習できるなんて、思いもよりませんでしたから。講師もバリバリのエンジニアですので、現場で使えるスキルを教えてもらえます。なんとも素晴らしいスクールがあったものですね。学割を使えば社会人より半額以下で受講できますから、学生さんには超おすすめです。

これから Java プログラミングを勉強して、将来はプログラマーとして活躍したいと思っている方には、就職保証付きJavaエンジニアコース というのがおすすめです。就職先まで保証してくれるとなれば、もう安心して学習に専念できますね。夢への第一歩はここから始まるのかも。あ、将来はライバルですね^^

オンラインスクールですから営業エリアは全国です。
気になる方は一度チェックしてみてください。無料の動画説明会も常時開催していますよ。


Javaコースあり!未経験者にウケてる KENスクール パソコンスクール・パソコン教室 【KENスクール】個別指導のWeb-DTP・OA・IT PCスクール

理解度や学習ペースに合わせて、一人ひとりが納得して前進できる授業を提供してくれるのが特徴です。特に課題製作は現場さながらで、実務に即したものとなっていますので短期でのスキルアップが望めます。自宅学習のサポートも充実していて、授業内容をいつでもビデオで振り返ることができるのもうれしいですね。好きな時間に好きな場所で、無理なくスケジューリングできるので、仕事の忙しい方でも柔軟に学ぶことができますよ。

更にさらに、なんと 就職サポート をしてくれるというのですから驚きです!!

履歴書の書き方から面接指導、求人の紹介など、具体的な就職先まで提案してくれるんです!私も「もっと早く出会いたかったなぁー、こんなスクール」・・・って思っちゃいました^^

東京・神奈川・愛知・大阪を営業エリアとされています。
まずは気軽に 無料体験予約 に申し込んでみるのもアリですよ。


コメントを残す

お名前 (必須)
メールアドレス
(アドレスは公開されません)

コメント(必須)

Trackback URL