- - PR -
String文字列のバイト単位の切り出し
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-23 15:37
いつも参考にさせていただいております。
今、Stringをバイト単位で取得したいのですが、 substringでは文字単位で抽出されてしまい、うまくいきません。 一旦バイナリ方に変換してから、切り出し、再度文字列に戻すといった 操作をすると可能ですが、、、、 何か良い方法をお知りの方、どうかよろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-02-23 16:03
charAt(n)で一文字ずつ切り出してカウントし、部分文字列を返すメソッドを作成して使用してます。
ご参考になれば幸いです。 | ||||||||
|
投稿日時: 2005-02-23 16:06
String.getBytes() では、だめですか?
それと、バイト単位で取得した後に何をするかを書いたほうが 有効な回答が頂けると思いますけど。。 | ||||||||
|
投稿日時: 2005-02-23 17:11
それって何か意味あるんですか? String をバイト列にして、バイト列の長さで切り出して、また String に戻す。どんなときにこういう処理するかな。たとえば、ShiftJIS 換算で、10バイト相当の文字列を作りたいときは、こんな処理が必要になりますね。 素直に、一度バイト列にして、切り出した後に再度 String を構築してくださいな。 | ||||||||
|
投稿日時: 2005-02-23 17:39
マルチバイトで文字の区切りを気にしないで良いことですかね。 | ||||||||
|
投稿日時: 2005-02-23 17:53
よくあるのは、データベースのカラムサイズに合わせたいときですね。 データベースの文字コードベースでサイズのチェックとか切捨てをやるときにはこういう ユーティリティメソッドを作ります。サイズチェックだけならgetBytesだけで事足りますが、 切捨ての場合はcharに分解した方が実装しやすいですね。 | ||||||||
|
投稿日時: 2005-02-23 18:09
言葉足らずですいません。
全角半角が入り混じったString文字列(固定長)データを それぞれの項目に格納していくClassを作成しています。 例えば、1バイト目から4バイト目がID,5バイト目から25バイト目までが氏名 といった具合のデータです。 | ||||||||
|
投稿日時: 2005-02-23 18:23
元々の文字列はどのような状態になっているんでしょうか。
Javaにおける文字列はユニコードなので、バイト長を意識する必要はないです。もしそれで 意識する必要があるとすれば、Stringに格納する時点で問題があるのではないですか? |
1