我想在给定字符串的特定位置插入例如0A和00的十六进制字节,即字符串集=“16 10 36 07 02 00 00 00 00 00 00 00 00 00 00 0B 11 B7 93”;我想在给定字符串的第4和第5位置插入0A和00。我怎样才能在java中编写代码
答案 0 :(得分:1)
我有一个快速的代码片段,工作正常!
public static String insertAtPos(String input, int pos, String insert) {
return
String.format("%s%s%s%s",input.substring(0, 3 * pos), insert, " ", input.substring(3 * pos, input.length()));
}
用法:
public static void main(String[] args) {
String set= "16 10 36 07 02 00 00 00 00 00 00 00 00 00 00 0B 11 B7 93";
String s0A = "0A";
String sFF = "FF";
System.out.println(insertAtPos(set, 4, s0A));
System.out.println(insertAtPos(set, 5, sFF));
}
答案 1 :(得分:0)
您可以这样做:
String set2 = set.substring(0, 9) + "0A 00 " + set.substring(9);
这会给你16 10 36 0A 00 07 02 00 00 00 00 00 00 00 00 00 00 0B 11 B7 93
如果您想要更通用的内容,请解释。
答案 2 :(得分:0)
好吧,你不能改变字符串本身的内容,但你可以改变set
变量来引用不同的字符串。 (或者如果需要,可以使用其他变量。)
你想在这里使用十六进制这一事实真的无关紧要。 “第4和第5个位置”仅表示“在字符串中的索引9之后”,因为索引只是字符(字符串的每个“十六进制字节”由两个十六进制数字和一个空格表示;三个字符)。所以:
set = set.substring(0, 9) + "0A 00 " + set.substring(9);