㈠ java實現把string轉換成16進制byte
零均值化就是一組數據,其中每一個都減去這組的平均值。
例如,對1、2、3、4、5零均值化,
先算出其均值為3,然後每一個數都減去3,
得到-2、-1、0、1、2
就實現了零均值化
㈡ java把16進制的字元串裝換成16進制形式的byte數組
public static void main(String[] args) {
String[] s = "0X0C|0X03|0X00|0X04|0X00|0X02|0X84|0XD7".split("|");
Map<String,Object> map = new HashMap<String,Object>();
for (int i = 0; i < s.length; i++) {
System.out.println(s[i].getBytes());
map.put(s[i], s[i].getBytes());
}
}
?不太明白意思 轉成16進制,做什麼?
㈢ 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" );
這樣所需要的位元組就有恢復了。
㈣ java怎麼將string轉換成byte數組
思路:先定義字元串,再通過getBytes()方法進行轉換數組就可以了。
參考代碼:
Strings="ZhiDao";//定義字元串
byte[]sb=s.getBytes();//把字元串轉換成數組
String的getBytes()方法是得到一個系統默認的編碼格式的位元組數組。將一個String類型的字元串中包含的字元轉換成byte類型並且存入一個byte[]數組中。
㈤ String 類型 轉 byte 16進制 java
String str = "#15";
int x = Integer.decode(str);
System.out.println(Integer.toHexString(x));
㈥ 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
(6)java16進制string轉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);
}
·
㈦ JAVA中有多個十六進制字元串轉成Byte數組,有什麼方法
給你如下兩個方法,你可以試試:
publicstaticbyteuniteBytes(bytestr0,bytestr1){
byte_b0=Byte.decode("0x"+newString(newbyte[]{str0})).byteValue();
_b0=(byte)(_b0<<4);
byte_b1=Byte.decode("0x"+newString(newbyte[]{str1})).byteValue();
byteret=(byte)(_b0^_b1);
returnret;
}
publicstaticbyte[]HexString2Bytes(Stringstr){
byte[]ret=newbyte[str.length()/2];
byte[]tmp=str.getBytes();
for(inti=0;i<str.length()/2;i++){
ret[i]=uniteBytes(tmp[i*2],tmp[i*2+1]);
}
returnret;
}
demo:
Stringstr="1A543C3265C133D23F416E21"
byte[]by=HexString2Bytes(str);
㈧ java 16進制字元串轉byte數組 如String inputStr = "030703";怎麼轉成byte[]{0x03,0x07,0x03}
每兩個字元拆分,再使用 Integer.parseInt(str, 16) 轉成int、再強制轉成 byte
~~~~~~~~~~~
㈨ java中將16進制字元串轉換byte數組
為什麼你中間要專門寫這個 ,(byte)0xFF,(byte)0xFF,
這兩個數字有啥特別的么