如何在java中用相应的数字替换数字

时间:2014-11-22 18:00:54

标签: java function

我必须编写一个java应用程序,它从随机数生成器中读取0到0之间的数字,包括0和9。将数字(一次一个)传递给一个函数,该函数将使用下表中的相应数字替换每个数字。最后,写下新的加密号码。

Digit in   Digit out
0            3
1            9
2            4
3            1
4            7
5            6
6            8
7            2
8            0
9            5 

示例:如果输入的数字是:

1 2 3 4 5

输出将是:

9 4 1 7 6

到目前为止:

`

import java.io.*;

import java.util.Arrays;

public class JAVAhw10

{

public static void main(String[] args) {

    int a, b, c, d, e;
    a = (int)((Math.random()*100) % (9) + 0);
    b = (int)((Math.random()*100) % (9) + 0);
    c = (int)((Math.random()*100) % (9) + 0);
    d = (int)((Math.random()*100) % (9) + 0);
    e = (int)((Math.random()*100) % (9) + 0);

    int DigitIn[] = new int[5];
    int table[] = new int[10];

    //filling in the arrays
    DigitIn[0]=a;
    DigitIn[1]=b;
    DigitIn[2]=c;
    DigitIn[3]=d;
    DigitIn[4]=e;

    System.out.println("This program ecnrypts 5 random numbers");
    System.out.println(Arrays.toString(DigitIn));

    func = encrypt(DigitIn, table);
    System.out.println(func);

    int[] table = {3,9,4,1,7,6,8,2,0,5};
   }

   public int encrypt(int){
    return table[int];
   }
}

`

2 个答案:

答案 0 :(得分:0)

你有从0到9的键。使用长度为10的数组作为值。对于不太特殊的情况,您可以使用地图。

答案 1 :(得分:0)

  1. 用数组或哈希表表示您的表。如果Digit ins是密集的,则数组是可以的,否则使用哈希表(键是数字输入,值是相应的数字输出)。

  2. 一次发送一个号码,并从阵列或哈希表中获取相应的数字输出值。

  3. 结合数字输出并创建整个加密输出。

  4. 一个例子:

    import java.util.*;
    
    class JAVAhw10 {
        private static final int[] table = {3,9,4,1,7,6,8,2,0,5};
    
        public static void main(String[] args) {
    
            int a, b, c, d, e;
            a = (int)((Math.random()*100) % (9) + 0);
            b = (int)((Math.random()*100) % (9) + 0);
            c = (int)((Math.random()*100) % (9) + 0);
            d = (int)((Math.random()*100) % (9) + 0);
            e = (int)((Math.random()*100) % (9) + 0);
    
            int DigitIn[] = new int[5];
            int table[] = new int[10];
    
            //filling in the arrays
            DigitIn[0]=a;
            DigitIn[1]=b;
            DigitIn[2]=c;
            DigitIn[3]=d;
            DigitIn[4]=e;
    
            System.out.println("This program ecnrypts 5 random numbers");
            System.out.println(Arrays.toString(DigitIn));
    
            int[] output = encrypt(DigitIn);
            System.out.println(Arrays.toString(output));
    
        }
    
        public static int[] encrypt(int[] input){
           int[] output = new int[input.length];
           for (int i=0; i<input.length; i++){
               output[i] = table[input[i]];
           }
           return output;
        }
    }