簡體   English   中英

用用戶輸入填充2D數組(整數到二進制)

[英]Filling a 2D Array with user input (integer to binary)

我必須從范圍中獲取整數的用戶輸入,將其轉換為二進制,然后用二進制填充3x3數組。 唯一的問題是,我的代碼給我的輸出僅取決於該二進制文件的前3個數字(即所有行上的010001101 = 010)。

import java.util.Scanner;
public class HW11P02 { 

    public static void main(String[] args) {
        Scanner in = new Scanner (System.in);
        System.out.print("Enter a number between 0 and 511: ");
        int n = in.nextInt();


        String binary = Integer.toBinaryString(n);
        binary = binary.format("%09d", Integer.parseInt(binary));
        System.out.println(binary);

        listArray(binary);


    };

    public static String[][] listArray(String binary) {
        String[][] array = new String[3][3];

        char ch = ' ';
        String value = "";

        for (int i = 0; i < 3; i++) {
            for (int n = 0; n < 3; n++) {
                ch = binary.charAt(n);
                value = Character.toString(ch);
                array[i][n] = value;
                System.out.print(array[i][n] + " ");
            }
            System.out.println();
        }



        return array;
    }
};

我認為這將提供您可能真正想要的輸出。

導入java.util.Scanner;

公共課HW11P02 {

public static void main(String[] args)
{
    Scanner in = new Scanner (System.in);
    System.out.print("Enter a number between 0 and 511: ");
    int n = in.nextInt();

    String binary = Integer.toBinaryString(n);
    binary = binary.format("%09d", Integer.parseInt(binary));
    System.out.println(binary);

    int result[][]=new int[3][3];
    int position=0;
    for (int i = 0; i < result.length; i++)
    {
        for (int j = 0; j < result.length; j++)
        {
            result[i][j]=binary.charAt(position++)-'0';
            System.out.print(result[i][j]+" ");
        }
        System.out.println();
    }


}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM