Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的程序没有计算正确的输出,我';我不知道为什么_Java_Arrays_Eclipse_Class_Jgrasp - Fatal编程技术网

Java 我的程序没有计算正确的输出,我';我不知道为什么

Java 我的程序没有计算正确的输出,我';我不知道为什么,java,arrays,eclipse,class,jgrasp,Java,Arrays,Eclipse,Class,Jgrasp,我已经盯着这个节目看了好几个小时了,也许第二个视角会有所帮助 import java.util.Arrays; import java.util.Random; public class Examples { private int numbers[]; private String result; public Examples() { numbers = new int[10]; Arrays.fill(numbers, 42);

我已经盯着这个节目看了好几个小时了,也许第二个视角会有所帮助

import java.util.Arrays;
import java.util.Random;

public class Examples

{
private int numbers[]; 
private String result;

     public Examples()
        {
     numbers = new int[10];
         Arrays.fill(numbers, 42);
        } 

        public Examples(int[] array)
        {
        numbers = Arrays.copyOf(array, array.length);
        }


 public void setNumbers (int numbers) 
    {                                           
    this.numbers = new int[numbers];
    }
 public int [] getNumbers()
 {                                      
    return numbers;
 }



public  String toString()
{
    String result = new String();
    int i;                                  
    for (i = 0; i < numbers.length; i++)
        result = numbers + "\t";
        return result;
}
结果应该是 测试默认构造函数和toString方法

toString来自FunNumber的结果: 42 42 42 42 42 42 42

toString来自moreFun的结果: 42 42 42 42 42 42 42

不管我得到什么, 测试默认构造函数和toString方法

toString来自FunNumber的结果: [I@6e1408

toString来自moreFun的结果: [I@e53108试试看

        result += numbers[i] + "\t";
ToString()方法中


将代码包含到您的
FunkyNumbers
类中,我可能能够提供更好的反馈。

问题:您总是为
结果指定一个新值,而不是追加。

最好将
StringBuilder
用作:

    StringBuilder result = new StringBuilder();
    for (int i = 0; i < numbers.length; i++)
        result.append(numbers + "\t");
    return result.toString();

还要确保该方法在
FunkyNumbers
类中可用。如果在那里不可访问,则移动/复制那里。

java中的数组是一个对象。因此,变量FunkyNumbers的值不是数组,而是指向数组所在内存中地址的引用。使用
toString()时
在屏幕上打印此内存地址,而不是将数组作为字符串打印。应使用
StringBuffer
将数组“转换”为字符串

private static String convertArrayToString(int[] a) {
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<a.length; i++)
            sb.append(a[i]);
        return sb.toString();
    }
private静态字符串convertArrayToString(int[]a){
StringBuffer sb=新的StringBuffer();

对于(int i=0;i您的
FunkyNumbers
类在哪里?在您的FunkyNumbers构造函数中发生了什么?这就是正在调用的构造函数…在您向我们显示
FunkyNumbers
类的代码后,我们可以帮助您…这不会影响输出,因为OP正在打印一些
FunkyNumbers
类的实例。@RohitJainnkyNumber扩展了一个例子,@SamIam这是一个很大的可能b.:这当然有帮助,但我还是有点不对劲get@user1804737我打赌你试图在你的评论中创建一个新行,不是吗?通常最好编辑这个问题。
    String result = new String();
    for (int i = 0; i < numbers.length; i++)
        result = result + numbers + "\t";//append in result
    return result;
private static String convertArrayToString(int[] a) {
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<a.length; i++)
            sb.append(a[i]);
        return sb.toString();
    }