java - 为什么在Codewars编辑器中得到意外的数组 token ?

标签 java arrays

    public class User {
    private int[] rank = {-8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8};
    private int userRank = rank[0];
    private int progress = 0;


    public int rank() {

        calculateRank();
        return this.userRank;
    }

    public int getProgress() {

        return progress;
    }

    public void incProgress(int ranked) {

        if (ranked < -8 || ranked > 8 || ranked == 0) {

            throw new java.lang.RuntimeException("Not in range required");
        } else {
            int indexOfTheRank = indexOf(ranked);
            int indexOfCurrentRank = indexOf(this.userRank);
            int difference = indexOfTheRank - indexOfCurrentRank;
            if (difference == 0) {

                progress += 3;
            } else if (difference == -1) {

                progress += 1;
            } else if (difference > 0) {

                progress += (difference * difference * 10);
            } else {
                progress += 0;
            }

        }
    }

    private int indexOf(int element) {
        int index = 0;
        for (int i = 0; i < rank.length; i++) {
            if (rank[i] == element) {

                index = i;
                break;
            }
        }
        return index;
    }

    private void calculateRank() {

        while (progress >= 100) {
            this.userRank = rank[indexOf(this.userRank + 1)];
            progress -= 100;
        }


    }
}


下面的代码在我的编辑器中运行良好,但是当我在
Codewars给了我一个
错误:


        ****After applying rank of -8 the resulting user rank was expected to be -8, 

         but was actually [I@25d250c6 expected:<-8> but was:<[I@25d250c6>****



我究竟做错了什么?

最佳答案

我只是在Codewars上尝试过此方法……您仍然需要做更多的调试工作,但是您的基本问题是您的某些变量/方法名称和访问修饰符不是Codewars测试用例所需要的:


您的userRank变量实际上应称为rank,并且应该是公共的。
您的rank数组应使用其他名称,以免与上面的名称冲突。
您的progress变量也应该是公共的。
您的rank方法应命名为getRank


因此,请更改这些代码(以及代码其余部分中对它们的引用),然后应该使该代码更正常了:“将等级应用-4后,预期的用户等级为-7,但实际上是-8应该是:<-7>,但是:<-8>“错误消息。

关于java - 为什么在Codewars编辑器中得到意外的数组 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59593558/

相关文章:

java - thymeleaf : How to use Custom Message Key in JSR-303 Annotation

iphone - objective-c 中的通用数组

c - 在 C 中移动单词时跳过标点符号

java - 尝试写入文件时发生 Android ENOENT 错误

java - 比较 Java RPC 与 Web 服务

ios - 将 Set<CustomObject> 存储到 UserDefaults

javascript - 将 Trello 卡成员拉入谷歌表格

java - 什么更快 : to create a new array or iterate through existing?

java - MPAndroid 日期格式化和解析失去精度

java - 如何在java中将格式化的 double 值打印为字符串?