java - 将 int 转换为 int 数组

标签 java arrays loops int

所以我对编程还很陌生。我正在介绍 java 类,并尝试提交我的项目,但是,我收到错误“int 无法转换为 int[]”。该程序编译良好并且可以工作,但是当它提交到我的网络猫时。它无法引用它。

import java.util.*;
/**
 * Guess the 3 digit code and this program will tell you how many
 * digits you have right and once you guess the correct code,
 * it'll tell you how many guesses it took you.
 * Press 0 to exit the program.
 *
 * @author (philtsoi)
 * @version (10/05/2017)
 */
public class CodeCracker {
    /**
     *  calls the play method
     *  
     */
    public static void main(String[] args) {
        play();
    }
    /**
     * starts the game
     */
    public static void play() {
        System.out.println("Guess my 3-digit code?");
        Scanner in = new Scanner(System.in);

        Random random = new Random();
        int correctd = random.nextInt(900) + 100; // random 3-digit code

        int[] code = new int[3]; // array that holds 3 integers
        int extract = 0; // extract is the one digit of guess
        int input = 0; // input is the digits the player types in
        int counter = 0; // counter is the number of guesses
        int correct = counter; // correct is the digits correct 

        extract = correctd / 100;
        code[0] = extract; // first digit
        correctd = correctd - extract * 100;
        extract = correctd / 10;
        code[1] = extract; // second digit
        correctd = correctd - extract * 10;
        code[2] = correctd; // third digit

        while (true) {
            System.out.println("Your guess? ");
            input = in .nextInt();
            counter++;
            if (input == 0) {
                System.out.println("Ok.Maybe another time.");
                break;
            } else {
                correct = checkGuess(code, input);
                System.out.println(input + " - " + correct + " digits correct");
                if (correct == 3) {
                    System.out.println("You got it in " + counter + " times");
                    break;
                }
            }
        }
    }

    /**
     * This method checkGuess goes through the code and calculates each 
     * digit and returns the number of correct ones
     * 
     * @param code[] the array that the number being guesses is stored in
     * @param guess the integer of the next guessed digit
     * @return number of correct digits
     */
    public static int checkGuess(int code[], int guess) {
        int count = 0; // count is the number of digits correct
        int extract = guess / 100; // extract is the one digit of guess
        if (code[0] == extract) {
            count++;
            guess -= extract * 100;
            extract = guess / 10;
        }
        if (code[1] == extract) {
            count++;
            guess -= extract * 10;
        }
        if (code[2] == guess) {
            count++;
        }
        return count;
    }

}

我知道一个事实,错误的问题是 checkGuess 方法。任何帮助将不胜感激。

这些是我收到的错误:

错误 Errors

最佳答案

这个方法 checkGuess(int code[], int Guess) 需要一个数组,后跟一个 int 作为参数,你只是不能传递 2 个 int 来调用它..

测试代码的类是失败的,您将变量 code 定义为 int[]

关于java - 将 int 转换为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46597985/

相关文章:

java - 格式化日期时间时如何应用时区?

java - Ektorp 依赖导致 Spring boot 应用程序崩溃

c++ - 将 auto_ptr<> 与数组一起使用

java - 如何找到与特定值匹配的 int 数组的索引

Javascript暂停循环直到事件发生

java - 使用枚举作为我的类的通用类型但无法创建实例

java - 如何将mockito 3.0与JUnit 5结合使用?

javascript - 文件数组在下拉菜单中显示 "."和 ".."

arrays - 比较两个数组并获取不常见的值

java - 如何从扫描仪获取多个整数输入并将每个整数存储在单独的数组中?