Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Methods_Tostring_Void - Fatal编程技术网

Java 生成因子数组并打印其内容

Java 生成因子数组并打印其内容,java,arrays,methods,tostring,void,Java,Arrays,Methods,Tostring,Void,如何创建一个保存整数数组的方法,然后在从主类调用该方法时允许该特定方法打印该数组的所有元素 下面是我做的一个程序作为示例: 我试图找到int输入的所有可能因素。我使用了一个名为generateFactors()的方法来存储一个数字的所有可能因子,但由于某种原因,我无法打印数组元素。在toString()方法中,出现一个错误,说明此处不允许使用无效类型 公共类系数编号{ 私有整数; 公共因素编号(整数){ 这个数字=数字; } public int getNumber(){ 返回号码; } 公共

如何创建一个保存整数数组的方法,然后在从主类调用该方法时允许该特定方法打印该数组的所有元素

下面是我做的一个程序作为示例: 我试图找到
int
输入的所有可能因素。我使用了一个名为
generateFactors()
的方法来存储一个数字的所有可能因子,但由于某种原因,我无法打印数组元素。在
toString()
方法中,出现一个错误,说明此处不允许使用
无效类型

公共类系数编号{
私有整数;
公共因素编号(整数){
这个数字=数字;
}
public int getNumber(){
返回号码;
}
公共无效集合号(整数){
这个数字=数字;
}
public void generateFactors(){
int[]因子=新的int[number];
for(int i=0;i
toString()方法不适用于数组和返回值为void的方法。改为使用数组。toString(数组)

public static void main(String[] args) {
    FactorNumbers fn = new FactorNumbers(100);
    int[] factors = fn.generateFactors();
    System.out.println(Arrays.toString(factors));
}
main方法中,打印数组中包含的所有值,并将generateFactors()方法重构为:

public int[] generateFactors() {
        int[] factors = new int[number];

        for (int i = 0; i < number; i++) {
            if ((i + 1 % number) == 0) {
                factors[i] = i;
                System.out.println("Factor= " + i);
            } else {
                factors[i] = 0;
            }
        }
        return factors;
    }
将始终返回false。替换为:

if((number % i+1) == 0)
获取正确的输出。

方法toString()不适用于数组和返回值为void的方法。改为使用数组。toString(数组)

public static void main(String[] args) {
    FactorNumbers fn = new FactorNumbers(100);
    int[] factors = fn.generateFactors();
    System.out.println(Arrays.toString(factors));
}
main方法中,打印数组中包含的所有值,并将generateFactors()方法重构为:

public int[] generateFactors() {
        int[] factors = new int[number];

        for (int i = 0; i < number; i++) {
            if ((i + 1 % number) == 0) {
                factors[i] = i;
                System.out.println("Factor= " + i);
            } else {
                factors[i] = 0;
            }
        }
        return factors;
    }
将始终返回false。替换为:

if((number % i+1) == 0)

要获得正确的输出。

要执行您想要执行的操作,代码必须如下所示:

    public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        if ((i + 1 % number) == 0) {
            factors[i] = i;
            ret += "Factor= " + i + "\n";
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        ret += factors[i] + "\n";
    }
    return ret;
}
 public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        //The remainder needs to be reversed
        if ((number % (i + 1)) == 0) {
            factors[i] = i+1;
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        //only print them if they are a factor
        if(factors[i] != 0)
            ret += factors[i] + "\n";
    }
    return ret;
}
公共字符串生成器(){
字符串ret=“”;
int[]因子=新的int[number];
for(int i=0;i
但是,您的代码不会返回因子,我认为您真正想要做的是这样的:

    public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        if ((i + 1 % number) == 0) {
            factors[i] = i;
            ret += "Factor= " + i + "\n";
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        ret += factors[i] + "\n";
    }
    return ret;
}
 public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        //The remainder needs to be reversed
        if ((number % (i + 1)) == 0) {
            factors[i] = i+1;
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        //only print them if they are a factor
        if(factors[i] != 0)
            ret += factors[i] + "\n";
    }
    return ret;
}
公共字符串生成器(){
字符串ret=“”;
int[]因子=新的int[number];
for(int i=0;i
要执行您想要执行的操作,代码必须如下所示:

    public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        if ((i + 1 % number) == 0) {
            factors[i] = i;
            ret += "Factor= " + i + "\n";
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        ret += factors[i] + "\n";
    }
    return ret;
}
 public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        //The remainder needs to be reversed
        if ((number % (i + 1)) == 0) {
            factors[i] = i+1;
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        //only print them if they are a factor
        if(factors[i] != 0)
            ret += factors[i] + "\n";
    }
    return ret;
}
公共字符串生成器(){
字符串ret=“”;
int[]因子=新的int[number];
for(int i=0;i
但是,您的代码不会返回因子,我认为您真正想要做的是这样的:

    public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        if ((i + 1 % number) == 0) {
            factors[i] = i;
            ret += "Factor= " + i + "\n";
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        ret += factors[i] + "\n";
    }
    return ret;
}
 public String generateFactors() {
    String ret = "";
    int[] factors = new int[number];

    for (int i = 0; i < number; i++) {
        //The remainder needs to be reversed
        if ((number % (i + 1)) == 0) {
            factors[i] = i+1;
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        //only print them if they are a factor
        if(factors[i] != 0)
            ret += factors[i] + "\n";
    }
    return ret;
}
公共字符串生成器(){
字符串ret=“”;
int[]因子=新的int[number];
for(int i=0;i
按以下方式更改您的方法: 如果需要,您可以使用stringbuilder

 public String generateFactors() {
    int[] factors = new int[number];
    String strPrint = "";
    for (int i = 0; i < number; i++) {
        if ((i + 1 % number) == 0) {
            factors[i] = i;
            strPrint = strPrint + "Factor= " + i + "\n"
           //System.out.println("Factor= " + i);
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        strPrint = strPrint + factors[i] + "\n"
       // System.out.println(factors[i] + "");
    }
   return strPrint;
}
公共字符串生成器(){
int[]因子=新的int[number];
字符串strPrint=“”;
for(int i=0;i
按以下方式更改您的方法: 如果需要,您可以使用stringbuilder

 public String generateFactors() {
    int[] factors = new int[number];
    String strPrint = "";
    for (int i = 0; i < number; i++) {
        if ((i + 1 % number) == 0) {
            factors[i] = i;
            strPrint = strPrint + "Factor= " + i + "\n"
           //System.out.println("Factor= " + i);
        } else {
            factors[i] = 0;
        }
    }
    for (int i = 0; i < number; i++) {
        strPrint = strPrint + factors[i] + "\n"
       // System.out.println(factors[i] + "");
    }
   return strPrint;
}
公共字符串生成器(){
int[]因子=新的int[number];
字符串strPrint=“”;
for(int i=0;i
toString方法中不能有generateFactors(),除非它实际返回字符串。可以将整数列表作为类的成员变量。
generateFacors()
函数不返回任何内容。仪表