如何获取字符串,将所述字符串转换为bianary,然后取每个1或0并将其添加为数组中的值

我正在使用Java中的网格进行一些测试,以及如何以1和0(其中1是[+],0是[])生成网格。

(TLDR):

我希望能够输入单词,将其转换为bianary,然后将每个1和0分别添加到数组中

我设置网格的方式是:


        // code that tells method how to generate the grid
         int[] GRIDCODE3x3_1 = new int[]{
                  0,1,0
          };
         public void fillGridSpec(int[] x) {
         System.out.println("\n");
         int count = 0;
             String gridLine = " ";
             for(int p = 0; p < gridHeight; p++) {
                 gridLine = " ";
                 String[] gridArray = new String[gridWidth];
                 for(int q = 0; q < gridWidth; q++) {
                     if(x[count] == 1) {
                         gridArray[q] = "[+] ";
                         count++;
                     } else {              
                         gridArray[q] = "[ ] ";
                         count++;
                     }
                     gridLine += gridArray[q];
                 }
                 System.out.println(gridLine);
             }
        } 

输出为:

[ ] [+] [ ]
[+] [+] [+]
[ ] [+] [ ]

通过这种方式,我想举一个我想要它做的例子。

让我们说字符串是 a

为此的双亲是01100001,我需要把它变成0,1,所以输出是

[ ] [+] [+] [ ] [ ] [ ] [ ] [+]

但我还需要它可重复,就像String是Hello World一样

(双亲):

01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100

(这里的逗号是多余的,所以我认为您需要将其转换为什么以及输出如何工作)

如果您需要对我的要求进行澄清,请在评论中提出,我会尽快与您联系。

aa1123128 回答:如何获取字符串,将所述字符串转换为bianary,然后取每个1或0并将其添加为数组中的值

仍然不确定您要问什么,但是

String a = "01001000";
StringBuilder buf = new StringBuilder();

for (char c: a.toCharArray()) {
    buf.append("[");
    if (c == '1') {
        buf.append("+");
    }
    buf.append("] ");
}

System.out.println(buf);

修改

如果输入是字符,则可以将其转换为二进制字符串,例如

    String a = Integer.toBinaryString('a');
    System.out.println(a);
    StringBuilder buf = new StringBuilder();

    for (char c: a.toCharArray()) {
        buf.append("[");
        if (c == '1') {
            buf.append("+");
        }
        else {
            buf.append(" ");
        }
        buf.append("] ");
    }

    System.out.println(buf);
,

我不确定您想要的科目如下:

String str = "Hello World";
for (int i = 0; i < str.length(); i++) {
    String binStr = String.format("%8s",Integer.toBinaryString(str.charAt(i))).replace(' ','0');

    int[] intArray = new int[binStr.length()];
    for (int j = 0; j < binStr.length(); j++) {
        intArray[j] = Integer.valueOf(String.valueOf(binStr.charAt(j)));

        // This also works 
        //intArray[j] = Character.getNumericValue(binStr.charAt(j));
    }
    System.out.println(Arrays.toString(intArray));
}

控制台输出

  

[0,1,0,0,1,0,0,0]
  [0,1,1,0,0,1,0,1]
  [0,1,1,0,1,1,0,0]
  [0,1,1,0,1,1,0,0]
  [0,1,1,0,1,1,1,1]
  [0,0,1,0,0,0,0,0]
  [0,1,0,1,0,1,1,1]
  [0,1,1,0,1,1,1,1]
  [0,1,1,1,0,0,1,0]
  [0,1,1,0,1,1,0,0]
  [0,1,1,0,0,1,0,0]

本文链接:https://www.f2er.com/3155421.html

大家都在问