0

以下の質問に答えようとしています。

配列または ArrayList を使用して、20 個の乱数を生成します (0 から 100 までの整数値。100 は含まれません)。プログラムは、次のタスクを実行する必要があります。

  1. 配列または ArrayList からの数値をファイルに書き込みます。

  2. ファイルから数値を読み取り、10 進数、16 進数、および 2 進数でコンソールに表示します。

これまでのところ、乱数発生器はうまく機能しており、ファイルは書き込まれています。ファイルを再読み込みし、ファイルから数値を 16 進数、10 進数、2 進数として表示することについては、完全に迷っています。これが私がこれまでに持っているものです。

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;


public class Write {

  public static void main(String[] args) throws IOException {

    Random generator = new Random();

    ArrayList numList = new ArrayList();

    int n = 0;

    while( n < 20 ) {
      int numGen = generator.nextInt(100);
      numList.add(numGen);
      n++;
    }        

    String result = numList.toString().replaceAll("[\\[\\]]", "");
    result = result.replace(",", " ");

    System.out.print(result);

    String filePath = "C:/Users/Username/Desktop/FileIOTest/coding_assignment.txt";
    File f = new File(filePath);
    FileOutputStream fileout = new FileOutputStream (f);

    DataOutputStream dataOut = new DataOutputStream(fileout);

    dataOut.writeBytes(result);

    dataOut.close();
  }      
} 
4

3 に答える 3

0

自分で行を完成させてみるべきだと思うので、基本的な入力のみを行います。

ファイルから読み取るには、次の 3 行を実行します。

fileIn
dataIn
readBytes

これらの行は簡単なはずです。数値を取得するには、次を使用します

split
Integer.ParseInt

表示するには、次を参照してください。

Integer.toHexString
Integer.toBinaryString
于 2013-11-12T15:51:11.840 に答える
0

あなたのコードから、ファイルから数値を読み取るためのコードを書き始めていません。

値の読み取りに関しては、BurreferReader を使用して数値を 1 行ずつ読み取ることができます。そして、 String.split メソッドを使用して、数値を配列に分割できます。split(" ")

int 値をBinaryおよびHexモードに変換することに関しては、次のようにメソッドとクラスを使用できtoBinaryStringます。toHexStringInteger

int i = 20;

System.out.println(i);//Print int value
System.out.println(Integer.toBinaryString(i)); //Print Binary string
System.out.println(Integer.toHexString(i)); // Print Hex string

コンソールの出力は次のとおりです。

20
10100
14
于 2013-11-12T15:47:00.600 に答える
0

数値を基数 10 から2進数および16 進数に変換するには、次のメソッドを使用するだけです。

Integer.toBinaryString(n);
Integer.toHexString(n);

ただし、実際にこれらを自分でコーディングしたい場合は、次の Web サイトをチェックしてみてください: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/toBaseK.html

これは、基数 10 から他の基数に変換する単純なアルゴリズムを提供するのに役立ちます。

于 2013-11-12T15:57:44.157 に答える