java字符串字节数组Today we will learn how to convert String to byte array injava. We will also learn how to convert byte array to String inJava. 今天,我们将学习如何在Java中将String转换为字节数组...
java 字符串 字节数组
Today we will learn how to convert String to byte array in java. We will also learn how to convert byte array to String in Java.
今天,我们将学习如何在Java中将String转换为字节数组。 我们还将学习如何在Java中将字节数组转换为String。

字符串到字节数组(String to byte array)

We can use String classgetBytes()method to encode the string into a sequence of bytes using the platform’s default charset. This method is overloaded and we can also passCharsetas argument.
我们可以使用String类的getBytes()方法使用平台的默认字符集将字符串编码为字节序列。 此方法已重载,我们也可以将Charset作为参数传递。
Here is a simple program showing how to convert String to byte array in java.
这是一个简单的程序,显示了如何在Java中将String转换为字节数组。
package com.journaldev.util; import java.util.Arrays; public class StringToByteArray {	public static void main(String[] args) {	String str = "PANKAJ";	byte[] byteArr = str.getBytes();	// print the byte[] elements	System.out.println("String to byte array: " + Arrays.toString(byteArr));	} }
Below image shows the output when we run the above program.
下图显示了运行上述程序时的输出。
We can also get the byte array using the below code.
我们还可以使用以下代码获取字节数组。
byte[] byteArr = str.getBytes("UTF-8");
However if we provide Charset name, then we will have to either catchUnsupportedEncodingExceptionexception or throw it. Better approach is to useStandardCharsetsclass introduced in Java 1.7 as shown below.
但是,如果提供了字符集名称,则必须捕获UnsupportedEncodingException异常或将其抛出。 更好的方法是使用Java 1.7中引入的StandardCharsets类,如下所示。
byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);
That’s all the different ways to convert String to byte array in java.
在Java中,这是将String转换为字节数组的所有不同方法。

Java字节数组到字符串(Java byte array to String)

Let’s look at a simple program showing how to convert byte array to String in Java.
让我们看一个简单的程序,该程序显示如何在Java中将字节数组转换为String。
package com.journaldev.util; public class ByteArrayToString {	public static void main(String[] args) {	byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };	byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };	String str = new String(byteArray);	String str1 = new String(byteArray1);	System.out.println(str);	System.out.println(str1);	} }
Below image shows the output produced by the above program.
下图显示了以上程序产生的输出。
Did you notice that I am providing char while creating the byte array?
您是否注意到创建字节数组时提供了char?
It works because of autoboxing and char ‘P’ is being converted to 80 in the byte array. That’s why the output is the same for both the byte array to string conversion.
由于自动装箱而起作用,并且char'P'在字节数组中被转换为80。 这就是为什么字节数组到字符串转换的输出相同的原因。
String also has a constructor where we can provide byte array and Charset as an argument. So below code can also be used to convert byte array to String in Java.
字符串还有一个构造函数,我们可以在其中提供字节数组和Charset作为参数。 因此,以下代码也可以用于在Java中将字节数组转换为String。
String str = new String(byteArray, StandardCharsets.UTF_8);
String class also has a method to convert a subset of the byte array to String.
String类还具有一种将字节数组的子集转换为String的方法。
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 }; String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
Above code is perfectly fine and ‘str’ value will be ‘PAN’. That’s all about converting byte array to String in Java.
上面的代码非常好,“ str”值为“ PAN”。 这就是在Java中将字节数组转换为String的全部内容。
java下字符串和字节数组转换 http://blog.sina.com.cn/s/blog_7e8c7d560101lwta.html 1、字节数组转换为字符串byte[] byBuffer = new byte[20]; ... ... String strRead = new String...
原文章地址:
1、字节数组转换为字符串
byte[] byBuffer = new byte[20];
String strRead = new String(byBuffer);
strRead = String.copyValueOf(strRead.toCharArray(), 0, byBuffer.length]);
2、字符串转换成字节数组
byte[] byBuffer = new byte[200];
String strInput="abcdefg";
byBuffer= strInput.getBytes();
注意:如果字符串里面含有中文,要特别注意,在android系统下,默认是UTF8编码,一个中文字符相当于3个字节,只有gb2312下一个中文相当于2字节。这种情况下可采取以下办法:
byte[] byBuffer = new byte[200];
String strInput="我是字符串";
byBuffer= strInput.getBytes("gb2312");
JAVA二进制字节数组字符十六进制BCD编码转换
java中字符串转换为字节数组请问用什么方法,字符串返回字节数组怎么做?
发现Java中没有有直接对纯 '0’和’1’组成的字符串转字节数组的函数,于是自己写了以下三个函数。 byte[] string2bytes(String s) 二制度字符串转字节数组,如101000000100100101110000 -> A0 09 70。 ...
发现Java中没有有直接对纯 '0’和’1’组成的字符串转字节数组的函数,于是自己写了以下三个函数。
byte[] string2bytes(String s)
二制度字符串转字节数组,如101000000100100101110000->A0 09 70。
String bytes2String(byte[] bts)
字节数组转字符串,如A0 09 70->101000000000100101110000。
String format(String input)
在字符串头部追加0或1,使其长度为8的倍数,如00010101->10101。
char toHex(byte v)
将一个值在[0, 15]范围内的字节换为一个十六字符,值域为0, 1, ..., 9, a, ..., f。
String byteToHexString(byte b)
将1个字节转换为两个十六进制的字符组成的字符串。
示例
****************** bytes2String Test ****************** 将字节数组输出为十六进制的字符串,如: bytes2String(a0 49 70) => 101000000100100101110000 ****************** string2bytes Test ****************** 将纯0和1组成的二进制字符串转换为字节数组,如: string2bytes(101000000100100101110000) => a0 49 70 ****************** format Test ****************** 将字符串使用0补全为长度为8的倍数的字符串,如: string2bytes(010) => 00000010
源代码
packagebinaries;importjava.io.IOException;publicclassCommonFunctions{publicstaticvoidmain(String[] args)throwsIOException{System.out.println("****************** bytes2String Test ******************");System.out.print("将字节数组输出为十六进制的字符串,如:\n");int n=0b101000000100100101110000;String s1=Integer.toBinaryString(n);String input=format(s1);byte[] bts=string2bytes(input);System.out.printf("bytes2String(%s) => %s",bytesToHexString(bts), input);System.out.println("\n");System.out.println("****************** string2bytes Test ******************");System.out.print("将纯0和1组成的二进制字符串转换为字节数组,如:\n");byte[] d1=string2bytes(s1);String s2=bytesToHexString(d1);System.out.printf("string2bytes(%s) => %s\n\n", s1, s2);System.out.println("****************** format Test ******************");System.out.print("将字符串使用0补全为长度为8的倍数的字符串,如:\n");System.out.printf("string2bytes(%s) => %s\n\n","010",format("010"));}/**	* 将01字符串的长度增长为8的倍数,不足部分在头部追加字符‘0’。	* @param input	* @return	*/staticStringformat(String input){int remainder= input.length()%8;StringBuilder sb=newStringBuilder(input);if(remainder>0)for(int i=0; i