Java 将用户输入编号分配给char数据类型中的数组

Java 将用户输入编号分配给char数据类型中的数组,java,arrays,char,Java,Arrays,Char,我试图要求用户输入一个三位数的数字,然后让代码使用charAt()为每个数字的字符分配一个新变量,并将每个数字放入一个数组中。到目前为止,它允许我输入一个数字,但随后它停止,不做任何其他事情,所以我认为这部分有问题。你会怎么做 其目的是让计算机生成一个三位数的数字,要求用户输入一个数字,然后分析这些数字,以查看猜测的数字中有多少位数与生成的数字相同,以及有多少正确的数字位于正确的位置。如果生成的数字是180,你猜是481,那么正确的数字是2,正确的位置是1 import java.util.Sc

我试图要求用户输入一个三位数的数字,然后让代码使用charAt()为每个数字的字符分配一个新变量,并将每个数字放入一个数组中。到目前为止,它允许我输入一个数字,但随后它停止,不做任何其他事情,所以我认为这部分有问题。你会怎么做

其目的是让计算机生成一个三位数的数字,要求用户输入一个数字,然后分析这些数字,以查看猜测的数字中有多少位数与生成的数字相同,以及有多少正确的数字位于正确的位置。如果生成的数字是180,你猜是481,那么正确的数字是2,正确的位置是1

import java.util.Scanner;
public class Main {

    public static void main(String[] args){
        char[] array = new char [3];
        for (int i = 0; i < array.length; i++){
            array[i] = (char)(Math.random() * 9);
        }

        char[] guess = {0, 0, 0};

        System.out.println("I have a three digit number with no repeating digits. Guess the number.");

        while (guess != array){
            Scanner input = new Scanner(System.in);
            char number1 = input.next().charAt(0);
            char number2 = input.next().charAt(1);
            char number3 = input.next().charAt(2);

            guess[0] = number1;
            guess[1] = number2;
            guess[2] = number3;

            int digit = 0;
            int place = 0;
            for(int n = 0; n < array.length; n++){
                for(int d = 0; d < array.length; d++){
                    if(array[n] == guess[d]){
                        digit++;
                    }
                }
            }
            for(int r = 0; r < array.length; r++){
                if(array[r] == guess[r]){
                    place++;
                }
            }
            System.out.println("Correct digits: " + digit);
            System.out.println("Correct places: " + place);
        }
        System.out.println("Congratulations, you got it");
    }
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
char[]数组=新字符[3];
for(int i=0;i
要解决在此之后将遇到的问题,请执行以下操作:

array[i] = (char) (Math.random() * 9 + '0');
您需要正确存储字符。以前,您存储的是ascii码0-9

while (guess[0] != array[0] || guess[1] != array[1] || guess[2] != array[2]){
您需要分别比较数组的每个值


在对字符进行采样之前,您需要存储数字。

您可以分享您的代码吗?这是一个注释,不是答案。这就是为什么有人否决了你我还不能评论,所以我打算编辑我的答案。在我有足够的代表之前,我是否应该避免回答那些需要完全澄清的问题?(真正的问题,在文本中听起来有点刺耳)“在我有足够的代表之前,我是否应该完全避免回答那些需要澄清的问题”是的。
while (guess[0] != array[0] || guess[1] != array[1] || guess[2] != array[2]){