怎么样将byte数组转换成String? 如我的byte数组数据为{1,2,97,98,96,98}我想转成String ,其中97按照ascii表为字符a,98为字符c,应该怎么装换?我可不想String转换为1297989698的,这样没办法看。谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 byte[] a = {1,2,97,98,96,98} ; String s = new String(a) ; // 字节数据转换为可打印字符串// 如:{0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} --> "C8329BFD0E01" // pSrc: 源数据指针// pDst: 目标字符串指针// nSrcLength: 源数据长度// 返回: 目标字符串长度int Bytes2String(const unsigned char* pSrc, char* pDst, int nSrcLength){ const char tab[]="0123456789ABCDEF"; // 0x0-0xf的字符查找表 for(int i=0; i<nSrcLength; i++) { // 输出低4位 *pDst++ = tab[*pSrc >> 4]; // 输出高4位 *pDst++ = tab[*pSrc & 0x0f]; pSrc++; } // 输出字符串加个结束符 *pDst = '\0'; // 返回目标字符串长度 return nSrcLength * 2;} 就这样就行呀! char[] c = new char[] {1,2,97,98,96,98}; System.out.println(new String(c));输出结果是: ab`b 都不行啊。函数传进来的是byte数组 byte[] a = {1,2,97,98,96,98} ; StringBuffer s1=new StringBuffer(128); s1.append("the final result:"); for (int i=0;i<a.length ;i++ ) { s1.append((char)a[i]); } System.out.println(s1); java运行时会栈溢出这是为什么啊 字符ASCII右移几位后,字符怎么没有变化 关于java socket(tcp)的问题 java程序未捕获到异常,程序非正常退出? 关于JAVA SWING方面的问题~ 一直困扰我的技术问题,请前辈不要吝啬,真诚的向您请教 请教~~为什么我不能编译啊~~~~ 系統配置問題,在線等待!!謝謝 真的不明白,简单问题3(关于文件) 用什么方法可以遍历一个类的所有实例?给点代码。谢谢 在APPLET程序中如何打开一个新的页面和一个新的系统窗口 基于Socket的聊天
String s = new String(a) ;
// 字节数据转换为可打印字符串
// 如:{0xC8, 0x32, 0x9B, 0xFD, 0x0E, 0x01} --> "C8329BFD0E01"
// pSrc: 源数据指针
// pDst: 目标字符串指针
// nSrcLength: 源数据长度
// 返回: 目标字符串长度
int Bytes2String(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
const char tab[]="0123456789ABCDEF"; // 0x0-0xf的字符查找表
for(int i=0; i<nSrcLength; i++)
{
// 输出低4位
*pDst++ = tab[*pSrc >> 4];
// 输出高4位
*pDst++ = tab[*pSrc & 0x0f];
pSrc++;
}
// 输出字符串加个结束符
*pDst = '\0';
// 返回目标字符串长度
return nSrcLength * 2;
}
char[] c = new char[] {1,2,97,98,96,98};
System.out.println(new String(c));
输出结果是: ab`b
函数传进来的是byte数组
StringBuffer s1=new StringBuffer(128);
s1.append("the final result:");
for (int i=0;i<a.length ;i++ )
{
s1.append((char)a[i]); }
System.out.println(s1);