倾家荡产求叫 byte数组怎么会有什么0x方式之类的,这些格式只有在再转换成字符串的时候才会出现"string".getBytes()就可以了,你所需要的格式只有在toString时候才有意义的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dst_addr[1][0] = 0x31; dst_addr[1][1] = 0x33; dst_addr[1][2] = 0x37; dst_addr[1][3]= 0x37; dst_addr[1][4]= 0x0; 不明白你到底是想做什么,如果你是运算,变成字符串的话byte b = 0x10 和 byte b = 16 根本是一样的,如果你不转换成字符串,对你来说有任何的区别吗?如果需要转换成字符串,Integer.toHexString就可以了 String str = "0x010x020x030x100x200x30"; Pattern p = Pattern.compile("0x\\d{2}?"); Matcher m = p.matcher(str); int count = 0; while (m.find()) { count++; } String[] hex = new String[count]; m.reset(); for (int i = 0; m.find(); i++) { hex[i] = m.group().substring(2, 4); } byte b; for (int i = 0; i < hex.length; i++) { b = Byte.parseByte(hex[i], 16); System.out.println(b); }请将你 String str = "0x010x020x030x100x200x30"; 对象的原型格式说出来以便修改 你能不能将待分析的String给个例子咱好帮你解决到底是"0x00 0x01 0x04 0x0"还是"0x010x030x040x060x0"?请将问题描述清楚 String str = "0x01 0x02 0x03 0x10 0x20 0x30 0x0"; Pattern p = Pattern.compile("0x\\d{1,2}"); Matcher m = p.matcher(str); int count = 0; while (m.find()) { if (m.group().equalsIgnoreCase("0x0")) break; count++; } String[] hex = new String[count]; byte[] b = new byte[count + 1]; m.reset(); for (int i = 0; i < count; i++) { m.find(); hex[i] = m.group().substring(2, 4); b[i] = Byte.parseByte(hex[i], 16); } b[count] = 0x0; for (int i = 0; i < b.length; i++) { System.out.println(b[i]); }上面一段程序如下几种格式的源都可以工作String str = "0x01 0x02 0x03 0x10 0x20 0x30 0x0";String str = "0x010x020x030x100x200x300x0";String str = "0x01dsad0x02dsadsa0x03dsadsa0x10dsadsds0x20as0x30dsa0x0";String str = "0x013450x023450x035430x103450x2034550x303450x0";住你好运! public class ts { public static void main (String[] args) { String svc="123456"; byte svc_type[] =new byte[1024]; svc_type[0]=0x39; svc_type[1]=0x39; svc_type[2]=0x39; svc_type[3]=0x39; svc_type[4]=0x39; svc_type[5]=0x39; svc_type[6]=0x39; svc_type[7]=0x39; svc_type[8]=0x0; svc_type=svc.getBytes(); Arrays.fill(svc_type,svc_type[6]=0x30); for(int i=0;i<20;i++){ System.out.println(svc_type[i]);} } }这是我手写的现在我想自动 把String svc="123456";放在BYTE[]数组里结尾一定要0x0 String svc="123456";怎么个放法?1按照0x01, 2按照0x02, 3按照0x03?还是 12按照0x12, 34按照0x34, 56按照0x56?您能说明白点吗? 1按照0x31, 2按照0x32, 3按照0x3331,32,33是16进制表示最主要的结尾一定要0x0 import java.io.UnsupportedEncodingException;public class Test { public static void main(String[] args) { String s = "123456"; byte[] b1 = new byte[s.length() + 1]; byte[] b2 = new byte[s.length()]; try { b2 = s.getBytes("UTF-8");// 获得 ASCII 16进制值 } catch (UnsupportedEncodingException e) { e.printStackTrace(); } for (int i = 0; i < b2.length; i++) { b1[i] = b2[i]; } b1[b2.length] = 0x0; for (int i = 0; i < b1.length; i++) { System.out.println("0x" + Integer.toHexString(b1[i])); } }}注意:计算机是以二进制存放数据的而打印过程默认是十进制,你如果想打印16进制值必须转换 UTF-8不合适我程序用还有没有别的方法 UTF 跟 ASCII 兼容你能不能先运行一下再说适不适合你程序? http://community.csdn.net/Expert/TopicView1.asp?id=3222720 运行了不行报错我的BYTE[] 你转换成CHAR数组,取数组长度,FOR循环赋值. import java.util.Arrays;import java.io.UnsupportedEncodingException;public class ts { public static void main(String[] args) throws UnsupportedEncodingException { String svc = "123456"; byte svc_type[] = new byte[1024]; byte[] ascii = svc.getBytes("UTF-8"); for (int i = 0; i < ascii.length; i++) { svc_type[i] = ascii[i]; } svc_type[ascii.length] = (byte) 0x0; Arrays.fill(svc_type, ascii.length +1, svc_type.length, (byte) 0x30); for (int i = 0; i < svc_type.length; i++) { System.out.println(svc_type[i]); } }}这样? registered请到我发的SP开发那个贴领50分 存储ResultSet 问题 为什么super方法只能放构造器里? 运算符优先级的问题 关于Sun指南里用TableSorter给JTable排序问题 Java新手入门的30个基本概念 Class.forName(aa).newInstance 这样加载一个实现类,如果这个实现类有多个构造函数,是否都会调用呢? IBM 投资1亿美金推广Java办公软件Workplace挑战OFFICE 跪求JFrame,JWindow的问题。(在线等待) 问题标签用户 java swing JInternalFrame的焦点问题 Socket VS Rmi 如何将字符串写入到文本文件中 org.jfree
dst_addr[1][1] = 0x33;
dst_addr[1][2] = 0x37;
dst_addr[1][3]= 0x37;
dst_addr[1][4]= 0x0;
byte b = 0x10 和 byte b = 16 根本是一样的,如果你不转换成字符串,对你来说有任何的区别吗?如果需要转换成字符串,Integer.toHexString就可以了
Pattern p = Pattern.compile("0x\\d{2}?");
Matcher m = p.matcher(str);
int count = 0;
while (m.find()) {
count++;
}
String[] hex = new String[count];
m.reset();
for (int i = 0; m.find(); i++) {
hex[i] = m.group().substring(2, 4);
} byte b;
for (int i = 0; i < hex.length; i++) {
b = Byte.parseByte(hex[i], 16);
System.out.println(b);
}请将你 String str = "0x010x020x030x100x200x30"; 对象的原型格式说出来以便修改
到底是"0x00 0x01 0x04 0x0"
还是"0x010x030x040x060x0"?
请将问题描述清楚
Pattern p = Pattern.compile("0x\\d{1,2}");
Matcher m = p.matcher(str);
int count = 0;
while (m.find()) {
if (m.group().equalsIgnoreCase("0x0")) break;
count++;
}
String[] hex = new String[count];
byte[] b = new byte[count + 1];
m.reset();
for (int i = 0; i < count; i++) {
m.find();
hex[i] = m.group().substring(2, 4);
b[i] = Byte.parseByte(hex[i], 16);
}
b[count] = 0x0; for (int i = 0; i < b.length; i++) {
System.out.println(b[i]);
}上面一段程序如下几种格式的源都可以工作
String str = "0x01 0x02 0x03 0x10 0x20 0x30 0x0";
String str = "0x010x020x030x100x200x300x0";
String str = "0x01dsad0x02dsadsa0x03dsadsa0x10dsadsds0x20as0x30dsa0x0";
String str = "0x013450x023450x035430x103450x2034550x303450x0";
住你好运!
public static void main (String[] args)
{
String svc="123456";
byte svc_type[] =new byte[1024];
svc_type[0]=0x39;
svc_type[1]=0x39;
svc_type[2]=0x39;
svc_type[3]=0x39;
svc_type[4]=0x39;
svc_type[5]=0x39;
svc_type[6]=0x39;
svc_type[7]=0x39;
svc_type[8]=0x0;
svc_type=svc.getBytes();
Arrays.fill(svc_type,svc_type[6]=0x30);
for(int i=0;i<20;i++){ System.out.println(svc_type[i]);}
}
}
这是我手写的
现在我想自动
放在BYTE[]数组里
结尾一定要0x0
怎么个放法?
1按照0x01, 2按照0x02, 3按照0x03?
还是 12按照0x12, 34按照0x34, 56按照0x56?
您能说明白点吗?
31,32,33
是16进制表示
最主要的结尾一定要0x0
public static void main(String[] args) {
String s = "123456";
byte[] b1 = new byte[s.length() + 1];
byte[] b2 = new byte[s.length()];
try {
b2 = s.getBytes("UTF-8");// 获得 ASCII 16进制值
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
for (int i = 0; i < b2.length; i++) {
b1[i] = b2[i];
}
b1[b2.length] = 0x0;
for (int i = 0; i < b1.length; i++) {
System.out.println("0x" + Integer.toHexString(b1[i]));
}
}
}注意:
计算机是以二进制存放数据的
而打印过程默认是十进制,你如果想打印16进制值必须转换
不合适我程序用
还有没有别的方法
你能不能先运行一下再说适不适合你程序?
不行
报错
我的BYTE[]
import java.io.UnsupportedEncodingException;public class ts {
public static void main(String[] args) throws UnsupportedEncodingException {
String svc = "123456";
byte svc_type[] = new byte[1024];
byte[] ascii = svc.getBytes("UTF-8"); for (int i = 0; i < ascii.length; i++) {
svc_type[i] = ascii[i];
}
svc_type[ascii.length] = (byte) 0x0; Arrays.fill(svc_type, ascii.length +1, svc_type.length, (byte) 0x30); for (int i = 0; i < svc_type.length; i++) {
System.out.println(svc_type[i]);
}
}
}这样?
请到我发的SP开发那个贴领50分