アフィリエイト広告を利用しています

広告

posted by fanblog

2014年11月19日

【java】getBytesだと文字数が合わない

getBytesした長さを見て、一定の長さを超えたら文字列の後ろをカットしたかったのですが

UTF-8だと、日本語は1文字3byteとか!

カットするメソッドには迷いなくsubstringを使ってしまったので、ここで不幸が生まれたわけです。

if(tmpStr.getBytes().length > 14 ) {
StringBuffer sb = new StringBuffer(tmpStr.substring(0, 14/2 )).append("...");
}


tmpStr="へらくれす";
でもうアウトなんです。
”へらくれす"は15byteなので、ものの見事に

致命的: java.lang.StringIndexOutOfBoundsException: String index out of range: 7


っていうダサいものが見えます。

うーん。文字コードに頼る実装はダメなのかな。

ちなみに、ヘラクレスを選んだ理由は5文字を探した時に頭の中に麦わらの船長さんが出てきたためと思われます。
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/2987120
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
<< 2016年02月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29          
検索
ファン
タグクラウド
最新コメント
最新記事
写真ギャラリー
カテゴリアーカイブ
プロフィール
×

この広告は30日以上新しい記事の更新がないブログに表示されております。