如何将数组元素转换为二进制值

时间:2019-03-06 03:27:28

标签: java

import java.util.Arrays;
import java.util.Scanner;



public class EncryptionAlgorithm {

   public static void enterText(String plaintext ){

        Scanner in = new Scanner(System.in);
        System.out.print("Enter Plaintext: ");
        plaintext = in.nextLine(); 
        int plaintextLenght = plaintext.length();

        int[] array1 = new int[plaintextLenght]; 
        int[] array2 = new int[plaintextLenght]; 

        for(int i = 0; i < plaintextLenght ; i++){  
            char character = plaintext.charAt(i); 
            int ascii = (int) character; 

            array1[i]= ascii / 10; 
            array2[i] = ascii % 10;   

        }
        String temp1 = **Integer.toBinaryString(array1)**;
        String temp2 = **Integer.toBinaryString(array2)**;
        while (temp1.length()!= 8) { 
            temp1 = "0" + temp1;            
        }
        while (temp2.length()!= 8) { 
            temp2 = "0" + temp2;            
        }
        System.out.print("Quotient = "+ Arrays.toString(array1)); 
        System.out.println(" Remainder = "+ Arrays.toString(array2)); 
    }

        public static void main(String[] args) {
        String str ="";
        enterText(str);

    }
}

请帮助我解决toBinaryString()问题,我会很感激。 谢谢

1 个答案:

答案 0 :(得分:0)

可以通过以下方式实现:

注意:您可以将temp1.length()!= 8的条件更改为temp1.length() < 8。否则,它将进入无限循环以输入更大的文本。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class EncryptionAlgorithm {

    public static void enterText(String plaintext ){

        Scanner in = new Scanner(System.in);
        System.out.print("Enter Plaintext: ");
        plaintext = in.nextLine(); 
        int plaintextLenght = plaintext.length();

        int[] array1 = new int[plaintextLenght]; 
        int[] array2 = new int[plaintextLenght]; 

        for(int i = 0; i < plaintextLenght ; i++){  
            char character = plaintext.charAt(i); 
            int ascii = (int) character; 

            array1[i]= ascii / 10; 
            array2[i] = ascii % 10;   

        }

        List<String> array1Binary = new ArrayList<String>();
        for (int i = 0; i < array1.length; i++) {
            array1Binary.add(Integer.toBinaryString(i));
            System.out.println(Integer.toBinaryString(i));
        }

        List<String> array2Binary = new ArrayList<String>();
        for (int i = 0; i < array2.length; i++) {
            array2Binary.add(Integer.toBinaryString(i));
        }

        String temp1 = String.join("", array1Binary);
        String temp2 = String.join("", array2Binary);
        while (temp1.length()!= 8) { 
            temp1 = "0" + temp1;            
        }
        while (temp2.length()!= 8) { 
            temp2 = "0" + temp2;            
        }
        System.out.print("Quotient = "+ Arrays.toString(array1)); 
        System.out.println(" Remainder = "+ Arrays.toString(array2)); 
    }

    public static void main(String[] args) {
       String str = "";
       enterText(str);

    }
}