【问题标题】:The final result of my method not the result I want我的方法的最终结果不是我想要的结果
【发布时间】:2020-03-20 12:28:57
【问题描述】:

希望你一切安好。

public class Main {

    public static void main(String[] args) {
        System.out.println(reverse3(new int[] {1,2,3}));


    }

    public static int[ ] reverse3(int [] nums) {
        int [] j = new int[3];
        j[0] = nums[2];
        j[1] = nums[1];
        j[2] = nums[0];
        return j;
    }

}

正如您在代码中看到的,该方法被赋予一个长度为 3 的整数数组,返回一个新数组,其中的元素以相反的顺序排列,因此 {1, 2, 3} 变为 {3, 2, 1}。

但是当我点击运行最终结果是[I@7b23ec81 谁能告诉我解决方案,谢谢。

【问题讨论】:

  • 代码、错误和结果应在 StackOverflow 上以文本形式提供。
  • 但是我在照片中提供了代码和错误
  • 是的,这就是为什么我评论“代码、错误和结果应作为文本在 StackOverflow 上提供。”
  • 好的,我该如何编辑问题。对不起,我是新来的
  • 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How to Ask

标签: java arrays methods


【解决方案1】:

因为你返回的 j 是一个数组对象,所以你需要循环出来打印值

在主函数中你可以做的是:

 Array arr[] = reverse3(new int[]{1,2,3}); 
    for(int i=0;i<arr.length;i++)
{ System.out.println(arr[i]); }

【讨论】:

  • 这里的“数组”是什么
【解决方案2】:

我做得很好,谢谢你的提问,我希望你也做得很好

您正在将一个数组放入println(array) println 不会重载以打印数组元素,如果您传递数组,它会为其打印 hascode。

你需要这样做

for(int i : reverse(new int[]{1,2,5})
{
  System.out.print(i);
}

【讨论】:

  • 谢谢兄弟。我能再问你一个问题吗?
  • 是的,你可以肯定,如果它对你有用,请考虑投票并勾选正确
  • 我已经尝试为答案投票,但弹出一条消息“感谢您的反馈!声望低于 15 的人的投票已记录,但不要更改公开显示的帖子得分。”
  • 好的,如果你得到了回答,你应该勾选右边的图标,这样其他人就可以看到这个问题得到了回答
  • 关于这个问题。当我运行时,结果是 321,这不是我想要的,所以我在 for 循环之前添加了“[”,在它之后添加了另一个。现在的结果 [321] 然后我添加了一个逗号,例如 System.out.print(j[i] + ",");但现在的最终结果 [3,2,1,] 如何删除数字 1 后的逗号
【解决方案3】:

你得到的值是 j 在内存级别的地址位置。因为 j 是你的 int[] 对象的引用变量,所以很明显它会返回该对象的引用而不是那个特定位置的值。 要实现您想要的,您需要使用

打印 i 的值

Code

Array arr[] = reverse3(new int[]{1,2,3}); 
for(int i=0;i<array.length;i++){
System.out.println("The value of arr[i] " +arr[i])
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2022-09-29
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多