① java里面byte数组和String字符串怎么转换
byte数组转换成String可以调用String的参数为byte数组的构造方法,代码如下:String res = new String(byte);
String转换成byte数组可以调用String的getByte方法,代码如下:byte[] srtbyte = str.getBytes();
② java中的字符串转为byte类型怎么转
String类有提供好的方法啊,getBytes()
getBytes
public byte[] getBytes(Charset charset)
使用给定的 charset 将此 String
编码到 byte 序列,并将结果存储到新的 byte 数组。
此方法总是使用此字符集的默认替代 byte 数组替代错误输入和不可映射字符序列。如果需要对编码过程进行更多控制,则应该使用 CharsetEncoder
类。
参数:
charset - 用于编码 String 的 Charset
返回:
所得 byte 数组
从以下版本开始:
1.6
③ 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怎么将这个字符串转成byte
importjava.util.Arrays;
publicclassTest{
publicstaticvoidmain(String[]args){
Stringtext="1222334423";
String[]split=text.split("");
byte[]bytes=newbyte[split.length];
for(inti=0;i<bytes.length;i++){
bytes[i]=(byte)Integer.parseInt(split[i]);
}
System.out.println(Arrays.toString(bytes));
}
}
⑤ 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" );
这样所需要的字节就有恢复了。
⑥ 字符串转byte数组 java
8b =139怎么超出范围了.只不过代表一个负值而已
看代码,粘贴到类直接运行
public static void main(String[] args) {
String aa = "4c 00 3a 02 00 03 0a 8b";
if(aa == null || aa.length() <= 0) {
System.out.println("aa没有值");
return;
}
Pattern p = Pattern.compile("[^\\da-fA-F\\s]");
Matcher m = p.matcher(aa);
if(m.find()) {
System.out.println("aa非法字符");
return;
}
String[] bb = aa.split("\\s");
byte[] cc = new byte[bb.length];
for(int i = cc.length; i-- > 0;) {
cc[i] = Integer.valueOf(bb[i], 16).byteValue();
System.out.println("cc[" + i + "]=" + cc[i] + " \tbb[" + i + "]=" + bb[i]);
}
}
⑦ java里面byte数组和String字符串怎么转换
java里面byte数组和String字符串转换有两种方法:
1、不设定编码方式
<prename="code"class="java">Stringstr="Hello";
byte[]srtbyte=str.getBytes();//string转byte[]
//s
Stringres=newString(srtbyte);//byte[]转string
2、设定编码方式
Stringstr="hello";
byte[]srtbyte=null;
try{
srtbyte=str.getBytes("UTF-8");//string转byte[]
Stringres=newString(srtbyte,"UTF-8");//byte[]转string
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
⑧ java里面byte数组和String字符串怎么转换
java中的String不属于基本数据类型,字符串是有一个个的字符组成的,字符数组就是字符串,因此,JDK提供了如下转换方法:
1.byte[]转换成String:
Stringstr=newString(byte[]bytes);
2.String转换成byte[]:
byte[]dataArray="HelloWorld!".getBytes();
以上便是jdk的String工具类提供的转换方法。
⑨ 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
(9)java字符串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中如何将字符串转换成字节数组
package com.sunjing.util;
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);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return destObj.replaceAll("\0"," ");
}
}