我需要拆分这样的字符串:
String= 0C46BA09
我知道了StringTokenizer和String.split()方法的展位,我用它们来分隔带空格的字符串。
但是在这种情况下我没有空格来设置条件,所以......我怎么能拆分这个字符串来逐个获取每个字符?
EDITED
这样做的真正目的是扭转此HEX字符串,因此请0C46BA09
获取此09BA460C
。
所以,我想知道是否有一种简单的方法,或者split()方法是获得它的唯一方法。
已编辑2
最后一个问题的新链接:
答案 0 :(得分:10)
你可以做到
char[] charArray = "0C46BA09".toCharArray();
答案 1 :(得分:5)
在String
上使用每个toCharArray()
方法
for (Character c : s.toCharArray()) {
System.out.println(c);
}
O / P:
0
C
4
6
B
A
0
9
更新
String s = "2B00FFEC";
StringBuilder result = new StringBuilder();
for (int i = 0; i <=s.length()-2; i=i+2) {
result.append(new StringBuilder(s.substring(i,i+2)).reverse());
}
System.out.println(result.reverse().toString()); //op :ECFF002B
答案 2 :(得分:2)
String s = "0C46BA09";
s.split("");
这应该做的工作。结果将是{ "", "0", "C", "4", "6", "B", "A", "0", "9", "" }
答案 3 :(得分:2)
一个纯粹的数字答案(灵感来自成语转换字节序);保存往返字符串
n
是int
:
int m = ((n>>24)&0xff) | // byte 3 to byte 0
((n<<8)&0xff0000) | // byte 1 to byte 2
((n>>8)&0xff00) | // byte 2 to byte 1
((n<<24)&0xff000000); // byte 0 to byte 3
如果你真的需要十六进制,
Integer.toHexString(m);
答案 4 :(得分:0)
为什么不使用
public String substring (int start, int end)
方法呢?
YOURSTRING= YOURSTRING.substring(4,8) + YOURSTRING.substring(0,4);
答案 5 :(得分:0)
如果你的目标是颠倒十六进制字符串的顺序,那么这段代码可能会有所帮助。
String s = "0C46BA09";
long b = Long.parseLong(s, 16);
long l;
l += ((byte)b >> 0) << 24;
l += ((byte)b >> 8) << 16;
l += ((byte)b >> 16) << 8;
l += ((byte)b >> 24) << 0;
System.out.println(Long.toHexString(l));