Java循环和StringBuilder
我遇到了一个砖墙,我不知道如何继续 快速运行:假设我的代码手动将4个十六进制ramerror1-4字符串转换为二进制。 我希望能够循环4次,每次创建一个唯一的StringBuilder以继续下一步 在过去的两天里,我一次又一次地试图让它工作,但没有成功。如有任何建议,将不胜感激。这是我的代码,没有失败的循环。Hex2可以作为一个测试,但我希望能够循环使用HexCodes 1-4ramError1-4 那么,如何在创建StringBuilder时循环使用Hex1-4呢 注意:ramErrors1-4中确实有字符串,我在前面的代码中通过读取文件添加了这些字符串Java循环和StringBuilder,java,loops,append,stringbuilder,charat,Java,Loops,Append,Stringbuilder,Charat,我遇到了一个砖墙,我不知道如何继续 快速运行:假设我的代码手动将4个十六进制ramerror1-4字符串转换为二进制。 我希望能够循环4次,每次创建一个唯一的StringBuilder以继续下一步 在过去的两天里,我一次又一次地试图让它工作,但没有成功。如有任何建议,将不胜感激。这是我的代码,没有失败的循环。Hex2可以作为一个测试,但我希望能够循环使用HexCodes 1-4ramError1-4 那么,如何在创建StringBuilder时循环使用Hex1-4呢 注意:ramErrors1-
String Hex1=ramError1;
String Hex2=ramError2;
String Hex3=ramError3;
String Hex4=ramError4;
StringBuilder hexstring1 = new StringBuilder();
StringBuilder hexstring2 = new StringBuilder();
StringBuilder hexstring3 = new StringBuilder();
StringBuilder hexstring4 = new StringBuilder();
for (int x = 0; x <= 8; x++)
{
if (Hex2.charAt(x) == 'A')
{
hexstring1.append("1010");
}
else if (Hex2.charAt(x) == 'B')
{
hexstring1.append("1011");
}
else if (Hex2.charAt(x) == 'C')
{
hexstring1.append("1100");
}
else if (Hex2.charAt(x) == 'D')
{
hexstring1.append("1101");
}
else if (Hex2.charAt(x) == 'E')
{
hexstring1.append("1110");
}
else if (Hex2.charAt(x) == 'F')
{
hexstring1.append("1111");
}
else if (Hex2.charAt(x) == '0')
{
hexstring1.append("0000");
}
else if (Hex2.charAt(x) == '1')
{
hexstring1.append("0001");
}
else if (Hex2.charAt(x) == '2')
{
hexstring1.append("0010");
}
else if (Hex2.charAt(x) == '3')
{
hexstring1.append("0011");
}
else if (Hex2.charAt(x) == '4')
{
hexstring1.append("0100");
}
else if (Hex2.charAt(x) == '5')
{
hexstring1.append("0101");
}
else if (Hex2.charAt(x) == '6')
{
hexstring1.append("0110");
}
else if (Hex2.charAt(x) == '7')
{
hexstring1.append("0111");
}
else if (Hex2.charAt(x) == '8')
{
hexstring1.append("1000");
}
else if (Hex2.charAt(x) == '9')
{
hexstring1.append("1001");
}
else
{
System.out.println("error at char" + x );
}
}
System.out.println("Hex To Binary is " + hexstring1.toString());
System.out.println("Hex To Binary is " + hexstring2.toString());
System.out.println("Hex To Binary is " + hexstring3.toString());
System.out.println("Hex To Binary is " + hexstring4.toString());
vmina
3994433考虑为十六进制设置字符串数组 然后将for循环移动到新方法
StringBuilder doMyStuff (String hex) {
StringBuilder bld = new StringBuilder ();
for (int x = 0; x <= 8; x++)
....
}
这可以称为
for (int loop = 0; loop < hexes.length; loop++) {
StringBuilder result = doMyStuff (hexes[loop]);
这不是将十六进制字符串转换为二进制的最佳方法。Java已经提供了许多实用程序功能:
long value = Long.parseInt(hexString, 16);
String result = Long.toBinaryString(value);
if (result.length() < 32)
{
// pad with zeroes
}
关于您的特定问题,您需要循环和数组来完成您需要的工作,比如
String[] hexStrings = new String[] { hexString1, hexString2, ... }
StringBuilder builders = new StringBuilder[4];
for (int i = 0; i < 4; ++i)
{
builders[i] = new StringBuilder();
String currentHext = hexStrings[i];
for (int x = 0; x < 8; ++x)
{
..
String[] hexStrings = new String[] { hexString1, hexString2, ... }
StringBuilder builders = new StringBuilder[4];
for (int i = 0; i < 4; ++i)
{
builders[i] = new StringBuilder();
String currentHext = hexStrings[i];
for (int x = 0; x < 8; ++x)
{
..