LoginSignup
3
3

More than 5 years have passed since last update.

Javaの文字列操作での反省

Last updated at Posted at 2017-08-05

最近業務の中で文字列をちょこっといじる処理を実装したのだが、

Sample.java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Split {
    public static void main(String[] args) {
       //お題:長さ10の文字列を2文字ずつ、5個のブロックに分割する
            String sampleString = "0123456789";
            List<String> splitedStringList = new ArrayList<String>();
            Matcher m = Pattern.compile("[\\s\\S]{1,2}").matcher(sampleString);
            while (m.find()) {
                splitedStringList.add(m.group());
            }

            for (String element : splitedStringList) {
                System.out.println(element); //01 23 45 76 89が改行されて表示される
           }
    }
}

正規表現だのなんだのを駆使すれば↑みたいな「パッと見かっこいいことやってそうな」処理が書ける。

というか、最初はそういう実装にした。

split()とかは引数に指定した区切り文字基準なので、「X文字ずつ」という指定ができないからだ。

しかし、後ろを通りかかった現場のリーダーからは

「substring()使えばよくない?」と。

所詮、超単純なルールで文字列を区切るだけなので、それだけで十分。しかし、実装中それを使うという発想は全く出てこなかった。お恥ずかしい。

1つの実装をとっても、処理のパフォーマンス、コードの可読性など考えるべきことはたくさんあるが…

・単純な処理で実現できるならそれに従う。

・自分の頭の中の引き出しを増やす&自在に引き出せるようにする。

Javaに限らず、個人的に反省すべき一件でした。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3