- PR -

バイトごとで、文字列を切り出すには、どうしたよいのですか?

投稿者投稿内容
yosi
会議室デビュー日: 2004/06/30
投稿数: 13
投稿日時: 2004-06-30 16:00
あいつーさん、ありがとうございます。
Stringのコンストラクタで、何バイト目までを文字にすることができました。
後は、1バイト文字と2バイト文字が混ざっているときの、処理を考えればいいわけですね。
やってみます。
うぐいす
会議室デビュー日: 2004/01/21
投稿数: 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;
}
}


引用:

yosiさんの書き込み (2004-06-30 13:31) より:
Javaの初心者です。教えてください。

たとえば、30バイトの時は、そのままで、30バイトを超えたときは、文字を30バイトまでにしたいんですが。



[ メッセージ編集済み 編集者: yosi 編集日時 2004-06-30 13:32 ]

yosi
会議室デビュー日: 2004/06/30
投稿数: 13
投稿日時: 2004-07-01 13:29
うぐいすさん、ありがとうございました。

まだ、初心者なので、ぱっと見ただけでは、分かりません。
調べて、参考にしたいと思います。ソースまでのせてくれて、ありがとうございます。

スキルアップ/キャリアアップ(JOB@IT)