Apex 全角半角混在の文字数確認
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;
}