- - PR -
バイトごとで、文字列を切り出すには、どうしたよいのですか?
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-06-30 16:00
あいつーさん、ありがとうございます。
Stringのコンストラクタで、何バイト目までを文字にすることができました。 後は、1バイト文字と2バイト文字が混ざっているときの、処理を考えればいいわけですね。 やってみます。 | ||||
|
投稿日時: 2004-07-01 09:29
yosiさんこんにちは。多少お役に立てそうなコードを以前書いたことがあります。
public class Fit { private static final String ENCODING = "Shift_JIS"; /** * 文字列を指定した長さに切り詰めます。 * 例えば("abc箱",4)と指定すると"abc"が返ります。 * また、("abc箱",10)と指定すると"abc箱"が返ります。 * @param str 検査したい文字列 * @param lengthInBytes 指定する長さ * @return 切り詰められた文字列 * @throws UnsupportedEncodingException */ public static String StringFit(String str, int lengthInBytes) throws UnsupportedEncodingException { int len = 0; for (int i = 0; i < str.length(); ++i) { len += String.valueOf(str.charAt(i)).getBytes(ENCODING).length; if (len > lengthInBytes) { return str.substring(0, i); } } return str; } }
| ||||
|
投稿日時: 2004-07-01 13:29
うぐいすさん、ありがとうございました。
まだ、初心者なので、ぱっと見ただけでは、分かりません。 調べて、参考にしたいと思います。ソースまでのせてくれて、ありがとうございます。 | ||||
