【Java】全角スペースも高速でtrimするメソッドを作ってみた
JavaのStringクラスでまいどおなじみのtrimメソッドですが、2byte言語の国の人は全角スペースもトリムしたいことがあったりするんじゃないでしょうか。ちなみに私は今日ありました。
というわけで全角スペースも高速でトリムするメソッドを作ってみたので備忘録。
public static String trim(String value) { if (value == null || value.length() == 0) return value; int st = 0; int len = value.length(); char[] val = value.toCharArray(); while ((st < len) && ((val[st] <= ' ') || (val[st] == ' '))) { st++; } while ((st < len) && ((val[len - 1] <= ' ') || (val[len - 1] == ' '))) { len--; } return ((st > 0) || (len < value.length())) ? value.substring(st, len) : value; }
Java7のString.classのtrim()を参考に作りました。
replaceAll()とか正規表現を使うとわかりやすいコードが書けるんですが、どうしても速度が遅くなってしまうのでこんな感じにしてみました。
String.classのtrim()となにが違うかはソースを見比べてみてね!