導航:首頁 > 編程語言 > javastring數組轉byte數組

javastring數組轉byte數組

發布時間:2024-04-01 16:51:39

1. java 怎麼將string轉換成byte

1.string 轉 byte[]
byte[] midbytes=isoString.getBytes("UTF8");
//為UTF8編碼
byte[] isoret = srt2.getBytes("ISO-8859-1");
//為ISO-8859-1編碼
其中ISO-8859-1為單位元組的編碼
2.byte[]轉string
String isoString = new String(bytes,"ISO-8859-1");
String srt2=new String(midbytes,"UTF-8");
說明:
在網路傳輸或其它應用中常常有同一的中間件,假設為String類型。因此需要把其它類型的數據轉換為中間件的類型。
將字元串進行網路傳輸時,如socket,需要將其在轉換為byte[]類型。這中間如果採用用不同的編碼可能會出現未成預料的問題,如亂碼。
下面舉個例子:
我們用socket傳輸String類型的數據時,常常用UTF-8進行編碼,這樣比較可以避免一個「中文亂碼」的問題。
發送端:
String sendString="發送數據";
byte[] sendBytes= sendString .getBytes("UTF8");
.......socket發送
接受端:
String recString=new String( sendBytes ,"UTF-8");

但是,這里往往又會出現這樣一個問題。就是想要發送的數據本身就是byte[]類型的。
如果將其通過UTF-8編碼轉換為中間件String類型就會出現問題
如:
byte[] bytes = new byte[] { 50, 0, -1, 28, -24 };
String sendString=new String( bytes ,"UTF-8");
byte[] sendBytes= sendString .getBytes("UTF8");
然後再發送
接受時進行逆向轉換
String recString=new String( sendBytes ,"UTF-8");
byte[] Mybytes=isoString.getBytes("UTF8");
這時Mybytes中的數據將是[50, 0, -17, -65, -67, 28, -17, -65, -67]
因此,需要採用單位元組的編碼方式進行轉換
String sendString=new String( bytes ,"UTF-8"); 改為 String sendString=new String( bytes , "ISO-8859-1" );
byte[] Mybytes=isoString.getBytes("UTF8"); 改為 byte[] Mybytes=isoString.getBytes( "ISO-8859-1" );
這樣所需要的位元組就有恢復了。

2. 在java中,將一個String類型的值轉換為byte類型,只能佔2個位元組存儲。

Byte.parseByte(s, 16)將s轉換成有符號數 ,這一個位元組能表示的范圍是:-128~127,下面的代碼是在搜來的代碼基礎上稍做了修改,調用的時候你只要把temperature傳進去即可得到轉換後的byte數組,byte數組的長度由temperature的值決定,你要求只能佔2個位元組存儲的話temperature的長度就要確保不超過4,這由你自己的代碼來約束。

public static byte[] hex2byte(String hex) {
String digital = "0123456789ABCDEF";
char[] hex2char = hex.toCharArray();
byte[] bytes = new byte[hex.length() / 2];
int temp;
for (int i = 0; i < bytes.length; i++) {
temp = digital.indexOf(hex2char[2 * i]) * 16;
temp += digital.indexOf(hex2char[2 * i + 1]);
bytes[i] = (byte) (temp & 0xff);
}
return bytes;
}

3. java中String類型的如何轉為byte[]

一、String轉byte數組簡單版:
1、String
str
=
"abcd";
2、byte[]
bs
=
str.getBytes();
二、復雜版
//
pros
-
no
need
to
handle
UnsupportedEncodingException
//
pros
-
bytes
in
specified
encoding
scheme
byte[]
utf8
=
"abcdefgh".getBytes(StandardCharsets.UTF_8);
System.out.println("length
of
byte
array
in
UTF-8
:
"
+
utf8.length);
System.out.println("contents
of
byte
array
in
UTF-8:
"
+
Arrays.toString(utf8));
Output
:
length
of
byte
array
in
UTF-8
:
8
contents
of
byte
array
in
UTF-8:
[97,
98,
99,
100,
101,
102,
103,
104]1
(3)javastring數組轉byte數組擴展閱讀:
反過來,將Byte數組轉化為String的方法
using
System;
using
System.Text;
public
static
string
FromASCIIByteArray(byte[]
characters)
{
ASCIIEncoding
encoding
=
new
ASCIIEncoding(
);
string
constructedString
=
encoding.GetString(characters);
return
(constructedString);
}
·

4. Java 字元串轉化為位元組

string型轉byte 要怎麼轉 有兩種方式
getBytes()
使用平台默認的字元集將此 String 解碼為位元組序列,並將結果存儲到一個新的位元組數組中。返回byte[]

getBytes(String charsetName)
使用指定的字元集將此 String 解碼為位元組序列,並將結果存儲到一個新的位元組數組中。返回
byte[]

你那樣寫是可以的 不過 你需要保證你的機器8001這個埠開放才能正常運行 我給你寫了一個測試類
public class T {
public static void main(String[] args) throws IOException
{
Socket s = new Socket(InetAddress.getByName("127.0.0.1"),80);
System.out.println(s);
}
}

5. string轉成byte[]存成什麼 是ASCII嗎

並不一定是ASCII碼。
1、 在java語言中,String 對象通過方法geBytes()可以獲得byte[]對象,
它實際上是把內部的char字元,按照平台默認的字元集編碼成byte數組,
2、 此外,也可以使用getBytes(Charset charset)指定字元集編碼。
3、 byte[] 既可以理解為數組,它本身也是個對象,在該數組中,每個數組成員都是
基礎數據類型byte,表達范圍是-128 至 127。
4、 所以,如果按照uinicode字元集來轉換的話,如包含非英文字母的String 對象轉換成的byte[],它的成員可能會超出ASCII碼的表示範圍。
例如,「漢字」的編碼UTF-8編碼為 {0xE6,0xB1,0x89,0xE5,0xAD,0x97}(摘自網路"Unicode「),如果將其轉換為byte[],它的每個成員的值都會超出ASCII碼的范圍。

6. java中如何將字元串轉化成特定長度的位元組數組

publicclassTest{
publicstaticvoidmain(String[]args){
byte[]byteArray="Test".getBytes();
byte[]byteArray2="測試".getBytes();
System.out.println("byteArray.length="+byteArray.length);
System.out.println("byteArray2.length="+byteArray2.length);

for(inti=0;i<byteArray.length;i++)
System.out.print((char)byteArray[i]);
System.out.println();
for(inti=0;i<byteArray2.length;i++)
System.out.print((char)byteArray2[i]);
}
}

漢字2個位元組編碼,1個漢字轉換成2bytes

7. java怎麼將string轉換成byte數組

思路:先定義字元串,再通過getBytes()方法進行轉換數組就可以了。

參考代碼:

Strings="ZhiDao";//定義字元串
byte[]sb=s.getBytes();//把字元串轉換成數組

String的getBytes()方法是得到一個系統默認的編碼格式的位元組數組。將一個String類型的字元串中包含的字元轉換成byte類型並且存入一個byte[]數組中。

閱讀全文

與javastring數組轉byte數組相關的資料

熱點內容
進化演算法和啟發式演算法的區別 瀏覽:600
android組件是什麼 瀏覽:973
安卓手機微信怎麼同步信息 瀏覽:181
小人pdf 瀏覽:806
我的世界伺服器怎麼造好看的建築 瀏覽:307
兄弟連培訓php多少錢 瀏覽:249
1523鋪地面的演算法 瀏覽:746
linux源碼安裝php環境 瀏覽:821
ping命令用法 瀏覽:717
日本海軍pdf 瀏覽:469
哪個app有大臉特效 瀏覽:140
自己生活需要解壓嗎 瀏覽:946
考研究生演算法 瀏覽:528
java撤銷 瀏覽:442
學完單片機做點什麼好 瀏覽:312
編譯後運行不了 瀏覽:404
安卓如何設置手機鍵盤大小 瀏覽:847
室內程序員表白方式 瀏覽:694
全民去哪裡找app 瀏覽:124
表格命令CAD 瀏覽:244