获取字节值作为字符串

时间:2016-03-20 11:41:54

标签: java string bytearray

我有字节数组"结果"其中包含

之类的值
  

[0,1,4,5,3,2,6,7,8,9]

我想将其转换为像

这样的字符串
  

0,1,4,5,3,2,6,7,8,9。

我已经采取了以下措施,但它没有工作。

String str = new String(result, "ISO-8859-1"); Used "UTF-8" Character set also.
String str  =  Arrays.toString(result);

3 个答案:

答案 0 :(得分:1)

不是一个很好的解决方案,但这似乎有效:

/**
 * @param args
 */
public static void main(String[] args) {
    byte[]  result = {1,2,3,4,5,6,7,8};
    String str;
    try {
        str = new String (result, "ISO-8859-1" ).trim();
        str  =  Arrays.toString(result).trim();
        str = str.replaceAll(" ","");
        System.out.println ( "str = ["+str+"]");
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    // TODO Auto-generated method stub

}

产生输出:

str = [[1,2,3,4,5,6,7,8]]

答案 1 :(得分:0)

由于没有简单的方法可以将byte[]转换为List<Byte>以便在String.join()或流中使用,因此代码会比您更加冗长像:

StringBuilder sb = new StringBuilder();
for (byte b : result)
    sb.append((int) b).append(',');
String str = sb.length() == 0 ? "" : sb.substring(0, sb.length() - 1);

答案 2 :(得分:0)

我不明白你是否想要一个字符串或一个字符串数组,但是对于&#34;一个字符串&#34;:

String str = "";
for(byte a : byteArr){
  str+=(char)a;
  str+=",";
}

应该有效