読者です 読者をやめる 読者になる 読者になる

B-Teck!

お仕事からゲームまで幅広く

【Java】文字列の後ろの半角・全角スペースをtrimみたいに消したい

Java

経緯

仕事で、文字列の末尾だけ半角・全角問わず消したいってことで色々調べてみたんだけど、
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--;
    }

今回は末尾のみでよかったので下だけ残して終わり