⑴ java中如何將字元串轉換成位元組數組
import java.io.UnsupportedEncodingException;/*** 將Byte轉換為String 或者將String轉換為Byte** @author Administrator**/public class ByteOrStringHelper {/*** 默認的字元集編碼
* UTF-8 一個漢字佔三個位元組*/private static String CHAR_ENCODE = "UTF-8";/*** 設置全局的字元編碼
* @param charEncode*/public static void configCharEncode(String charEncode){
CHAR_ENCODE = charEncode;}/*** @param str 源字元串轉換成位元組數組的字元串* @return*/public static byte[] StringToByte(String str) {
return StringToByte(str,CHAR_ENCODE);}/**** @param srcObj 源位元組數組轉換成String的位元組數組* @return*/public static String ByteToString(byte[] srcObj) {
return ByteToString(srcObj,CHAR_ENCODE);}/*** UTF-8 一個漢字佔三個位元組
* @param str 源字元串
* 轉換成位元組數組的字元串* @return*/public static byte[] StringToByte(String str,String charEncode) {
byte[] destObj = null;try {if(null == str || str.trim().equals("")){
destObj = new byte[0];
return destObj;}else{destObj = str.getBytes(charEncode);}} catch (UnsupportedEncodingException e) {
e.printStackTrace();}return destObj;}/*** @param srcObj 源位元組數組轉換成String的位元組數組* @return*/public static String ByteToString(byte[] srcObj,String charEncode) {
String destObj = null;try {destObj = new String(srcObj,charEncode);
⑵ 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
反過來,將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 怎麼把一個字元串數組轉換成一個位元組數組
String []strs={"1","2","3"};
int sum=0;
for(String str:strs){
byte[]bytes=str.getBytes();
sum+=bytes.length;
}
System.out.println("strs字元串數組占的位元組數:"+sum);
⑷ 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);
}
}
⑸ Java把一個字元流轉換成位元組流,除了字元本身,還需要什麼參數
不知道你的問題是寫反了,還是故意這么問的。
Java只提供了將位元組流轉為字元流的方法,並沒有字元流轉為位元組流的方法。
因為位元組流是一個通用的流,可以傳輸各種類型的資源,比如:文本、圖片、音頻等...
而字元流是一個特殊的流,只能傳輸文本類型的資源,但是它比位元組流傳輸文本的方式更加方便、快捷。
所以,有些場景需要將位元組流轉為更加方便快捷的字元流來處理;但沒有場景需要將字元流轉為位元組流,這個很好理解,如果是文本類型,字元流更高效,不需要轉為位元組流,如果是其它類型,字元流根本就用不了,也不存在轉換一說。
如果你想問的是位元組流轉為字元流的方法,那麼可以使用
轉換專屬流:(將位元組流轉換成字元流)
java.io.InputStreamReader
java.io.OutputStreamWriter
該類的構造方法是4個重載方法,參數可以是字元流對象
或者是字元流對象+字元集名稱/字元集對象/字元集解碼器對象
public InputStreamReader(InputStream in) {}
public InputStreamReader(InputStream in, String charsetName)
throws UnsupportedEncodingException
{}
public InputStreamReader(InputStream in, Charset cs) {}
public InputStreamReader(InputStream in, CharsetDecoder dec) {}
⑹ java把字元串類型128轉換成位元組怎麼做
String str = "128";
str.getBytes(); //就是你要的結果
//以下為一個轉碼的操作,自己可以作為參考:
String newStr = new String(str.getBytes("ISO-8859-1"),"UTF-8"); //把一個ISO-8859-1編碼的字元串改為UTF-8的編碼格式。 這個一般針對中文字元串才會使用。
⑺ 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中如何將字元串轉化成特定長度的位元組數組
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
⑼ java怎麼將string轉換成byte數組
思路:先定義字元串,再通過getBytes()方法進行轉換數組就可以了。
參考代碼:
Strings="ZhiDao";//定義字元串
byte[]sb=s.getBytes();//把字元串轉換成數組
String的getBytes()方法是得到一個系統默認的編碼格式的位元組數組。將一個String類型的字元串中包含的字元轉換成byte類型並且存入一個byte[]數組中。