経緯
仕事で、文字列の末尾だけ半角・全角問わず消したいってことで色々調べてみたんだけど、
trimの実装パクって末尾だけ対応させたらいいんじゃね?みたいな
そんなわけでtrimを調べてみたら、半角スペースにしか対応してなかった
最終的にこんなソースになった
- 実行環境 paiza.io上 1.8.0_45
public static String trimSpace(String orgStr) { if (orgStr == null) { return null; } char[] val = orgStr.toCharArray(); int len = val.length; int st = 0; while ((st < len) && (val[len - 1] <= ' ' || val[len - 1] == ' ')) { len--; } return ((st>0) || (len<val.length)) ? orgStr.substring(st,len):orgStr; }
これは、下記のほぼ丸写し↓
java.lang.Stringのtrim()の全角空白対応を考える - end0tknrのkipple - web写経開発
// この部分で文字列の先頭からスペースが無くなるまで舐める while ((st < len) && (val[st] <= ' ' || val[st] == ' ')) { st++; } // この部分で文字列のケツからスペースが無くなるまで舐める while ((st < len) && (val[len - 1] <= ' ' || val[len - 1] == ' ')) { len--; }
今回は末尾のみでよかったので下だけ残して終わり