【问题标题】:Getting a probable logic error with an array method使用数组方法获取可能的逻辑错误
【发布时间】:2016-03-16 11:43:50
【问题描述】:

在练习我的方法时,我遇到了这个错误: “[D@33909752”

我想让代码尽可能简单,所以除了如何修复该错误之外,我还有另一个问题:我可以以某种方式将 Scanner 和输入变量放在displaySortedNumbers 方法中吗?可能最后 id 喜欢只需要做类似的事情:

System.out.print(displaySortedNumbers(a, b, c));

并且已经对它们进行了排序。

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

public class NumSorter {

    public static double[] displaySortedNumbers(double num1, double num2, double num3) {

        double[] numbers = {num1, num2, num3};
        Arrays.sort(numbers);
        return numbers;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.print("Enter 3 numbers to be sorted in assending order: ");
        double a = in.nextDouble();
        double b = in.nextDouble();
        double c = in.nextDouble();

        System.out.print(displaySortedNumbers(a, b, c));
    }
}

【问题讨论】:

    标签: arrays sorting methods return double


    【解决方案1】:

    如果您打印一个数组,您将获得对该数组的引用,该引用可能类似于"D@33909752"。这是预期的,而不是错误。您可能想要打印数组的元素。在这种情况下,像这样改变你的最后一行:

    double[] result = displaySortedNumbers(a, b, c); 
    System.out.print(Arrays.toString(result));
    

    关于您的其他问题,您的代码可以通过直接写入数组而不是 a、b、c 来更简单。例如

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
    
        double[] numbers = new double[3];
        System.out.print("Enter " + numbers.length + " numbers to be sorted in assending order: ");
    
        for (int i = 0; i < numbers.length; i++) {
            numbers[i] = in.nextDouble();
        }
    
        Arrays.sort(numbers);
        System.out.print(Arrays.toString(numbers));
    }
    

    注意如何避免复制。如果你想让用户输入更多的数字,你只需要在一个地方改变你的代码。您可以考虑重构以将其中的任何部分移至另一个函数。

    【讨论】:

    • 非常感谢,帮了我很多忙。
    • @Alex 在 StackOverflow 中,您通过投票和/或接受答案来表明答案很有帮助。如果答案不清楚/不完整/不正确等,您发表评论无论如何我很乐意提供帮助!
    猜你喜欢
    • 2018-07-06
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    相关资源
    最近更新 更多