1

私はJavaの初心者で、なぜこれが機能しないのか理解できません。10 進数を 2 進数に変換するプログラムを作成しようとしていますが、ArrayList に問題があります。ArrayList の add メソッドを使用できません。

import java.util.ArrayList;
import java.util.Scanner;

public class DecimalToBinary {
public static void main (String[] args){
    Scanner reader = new Scanner (System.in);

    System.out.println("This program converts a decimal number to binary.");

    int decimal;
    ArrayList<int[]> binary = new ArrayList<int[]>();

    //Gets decimal number
    System.out.print("Enter base 10 number: ");
    decimal = reader.nextInt();

    //Adds 1 to binary and then adds the remainders of decimal/2 after that until decimal is 1 
    binary.add(1, null);
    while (decimal != 1){
        binary.add(1, decimal%2);//This is where I get the error
        decimal = decimal/2;
    }//Ends While loop
}//Ends main

}// DecimalToBinary クラスを終了します

4

2 に答える 2

1

この行で:

ArrayList<int[]> binary = new ArrayList<int[]>();

ArrayList には int 型の配列のみが含まれることを宣言しています。つまり、「バイナリ」に格納されているすべてのオブジェクトは int の配列になります。

したがって、次のように記述します。

binary.add(1, decimal % 2);

'decimal % 2' を binary の位置 1 に追加しようとしています。decimal % 2 は int であり、int の配列ではないため、コンパイラ エラーが発生します。

binary の宣言を次のように変更します。

ArrayList<Integer> binary = new ArrayList<Integer>();
于 2013-03-26T14:21:44.193 に答える
0
ArrayList <Integer> binary = new ArrayList <Integer>();

binary.add(3);
于 2013-03-26T13:39:49.687 に答える