1

Javaで変換する必要がありString[]ます。Byte[]基本的に、データベースからスペースで区切られた文字列が返されます。この文字列を文字列要素の配列に正常に分割しました。次に、各要素をバイトに変換し、最後にbyte[]を生成する必要があります。

これまでのところ、以下のコードは私がまとめることができたものですが、getBytes()関数が1バイトではなくbyte []を返すため、これを機能させるためにいくつかの助けが必要です。文字列に必要なのは1バイトだけです(文字列の例は0xd1です

byte[] localbyte = null;
if(nbytes != null)
{
    String[] arr = (nbytes.split(" ")); 
    localbyte = new byte[arr.length];  
    for (int i=0;  i<localbyte.length;  i++) {
        localbyte[i] = arr[i].getBytes();  
    }
}
4

3 に答える 3

1

正規表現に精通している必要があります。分割後に空の文字列を削除する代わりに、 1つ以上の空白で文字列を分割できます。

文字列をスペースまたはタブで分割するには、次を使用できます。

String[] arr = (nbytes.split("\\p{Blank}+"));

例えば

"Hello \tworld!" 

結果は

"Hello","world!"

文字列を空白で分割するには、次を使用できます。

String[] arr = (nbytes.split("\\p{Space}+"));

例えば

"Hello \tworld!\nRegular expression" 

結果は

"Hello","world!","Regular","expression"
于 2012-09-16T03:24:11.417 に答える
1

次のように文字列を分割したいと思います。

"Hello  world!"

"Hello"、 の代わり"world!""Hello"" ""world!"

その場合は、代わりにこれを使用して、単純に分割正規表現を微調整できます。

String[] arr = (nbytes.split(" +"));
于 2012-09-16T02:51:38.563 に答える
0

どうですかByte(String string)Javaドキュメント)。
また、検索することもできますByte.parseByte(string)doc

byte[] localbyte = null;
if(nbytes != null)
{
    String[] arr = (nbytes.split(" ")); 
    localbyte = new byte[arr.length];  
    for (int i=0;  i<localbyte.length;  i++) {
        localbyte[i] = new Byte(arr[i]);  
    }
}

知らせ:

文字列の文字はすべて 10 進数でなければなりませんが、最初の文字は負の値を示す ASCII マイナス記号 '-' ('\u002D') にすることができます。

したがって、をキャッチしたい場合がありますNumberFormatException
これがあなたの探しているものでない場合は、 についての追加情報を提供できますnbytesか?

また、マイケルの答えが役に立つかもしれません:https://stackoverflow.com/a/2758746/1063730

于 2012-09-16T04:03:46.870 に答える