「java交换byte」Java交换数值

博主:adminadmin 2023-01-09 12:48:06 1135

今天给各位分享java交换byte的知识,其中也会对Java交换数值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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 中的 byte 字节问题的转换

public class TestClass {

public static void main(String[] args) {

byte[] bstr={'h','e','l','l','o'};

byte[] otherB;

for(int i=0;ibstr.length;i++){

System.out.println(bstr[i]);

}

//转换

String str=new String(bstr);

System.out.println(str);

//转换

otherB=str.getBytes();

for(int i=0;iotherB.length;i++){

System.out.println(otherB[i]);

}

}

}

java中int如何转换byte

强制转换 byte a = (byte)3;

不过要注意的是,int的值的大小不要超过byte的范围,否则结果会错误的

java交换byte的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java交换数值、java交换byte的信息别忘了在本站进行查找喔。