Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java循环和StringBuilder_Java_Loops_Append_Stringbuilder_Charat - Fatal编程技术网

Java循环和StringBuilder

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-

我遇到了一个砖墙,我不知道如何继续

快速运行:假设我的代码手动将4个十六进制ramerror1-4字符串转换为二进制。 我希望能够循环4次,每次创建一个唯一的StringBuilder以继续下一步

在过去的两天里,我一次又一次地试图让它工作,但没有成功。如有任何建议,将不胜感激。这是我的代码,没有失败的循环。Hex2可以作为一个测试,但我希望能够循环使用HexCodes 1-4ramError1-4

那么,如何在创建StringBuilder时循环使用Hex1-4呢

注意:ramErrors1-4中确实有字符串,我在前面的代码中通过读取文件添加了这些字符串

    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)
  {
    ..