Apex 全角半角混在の文字数確認

in #side7apex4 years ago

Salesforceは全角3バイトだけど
連携先の都合上2バイト計算とかある
(仕様決めの時点でシンプルになるように調整すべきだった)

/**
 * 文字列から半角の文字数を取得する
 * 全角文字を2文字として計算する
 */
public static Integer getStringLength(String target) {
    Integer length = 0;
    String param = '';
 
    // null回避
    if(String.isNotEmpty(target)){
        param = target;
    }
 
    // 文字数分ループする
    for(Integer i = 0 ; i < param.length(); i++){
        String chr;
        Integer byteSize;
 
        // 1文字取得する
        chr = param.substring(i, (i + 1));
        // 1文字のバイト数を取得する
        byteSize = Blob.valueOf(chr).size();
        // 複数バイトの場合は全角とする
        if(byteSize > 1){
            length++;
        }
        length++;
    }
    return length;
}


http://blog.subnetwork.jp/?p=120

Coin Marketplace

STEEM 0.17
TRX 0.25
JST 0.034
BTC 96277.96
ETH 2823.68
SBD 0.68