【发布时间】:2017-03-09 20:47:36
【问题描述】:
我正在尝试将用户的输入作为字符串hex 并将其分成几对;然后我想将每对夫妇存储在一个数组中hexArray。换句话说,我想在每两个字符处拆分字符串。我正在考虑可能在每两个字符处插入一个- 并使用String.split() 来拆分它,但这是我设计的方法。在这种情况下,将用户对hex 的输入设为"1234567"。这是我目前所拥有的:
//removes last character from hex if length is odd and stores it back in hex
hex = hex.length() % 2 == 0 ? hex : hex.substring(0, hex.length() - 1);
String [] hexArray = new String[hex.length()/2];
//initializes and prints the first element of the array as the first two chars
//of hex
System.out.println(hexArray[0] = hex.substring(0, 2));
for (int i = 1; i + 3 < hex.length(); i++)
{
System.out.println(hexArray[i] = hex.substring(i + 1, i + 3));
}
这个输出是
12
34
45
我已经以我能想到的各种方式更改了 for 循环中的终止语句。如果编译正确,它会输出
12
34
56
我启动数组的第一个元素只是为了避免i = 0 的情况。我怎样才能避免这种重叠?另外,有没有办法将hexArray的每个元素从十六进制转换为十进制形式(假设hex的字符由输入0-9和AF(不区分大小写)组成),然后连接hexArray的元素成一个字符串? TIA。
【问题讨论】:
-
你能具体说明你的输入和预期输出吗?
-
如果我输入
1234567,预期输出将是 12 34 56 全部存储在一个数组中 -
这背后的原因是什么?因为十六进制的输入是 12D687,还是只是间隔每两个字符?
-
这是针对我正在开发的程序的,但我只是停留在将
hex拆分为每 2 个字符并将每个拆分部分存储到数组中hexArray