Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Arguments - Fatal编程技术网

如何循环使用java参数?

如何循环使用java参数?,java,loops,arguments,Java,Loops,Arguments,我必须创建许多文件来保存不同对象的输出,我想知道是否有一种简单的方法可以使用循环,而不是每次都键入整个内容。目前,我是这样做的,很快就会变得笨拙: public void createFile(String fn, String fn1, String fn2, String fn3, String fn4, String fn5, String fn6){ java.io.File filei = new java.io.File("fn.txt" ); java

我必须创建许多文件来保存不同对象的输出,我想知道是否有一种简单的方法可以使用循环,而不是每次都键入整个内容。目前,我是这样做的,很快就会变得笨拙:

public void createFile(String fn, String fn1, String fn2, String fn3, String fn4, String fn5, String fn6){
    java.io.File filei = new java.io.File("fn.txt" );       
    java.io.PrintWriter earth1 = new PrintWriter(file);
    java.io.File file1 = new java.io.File("fn1.txt" );
    java.io.PrintWriter sun1 = new PrintWriter(file1);
    java.io.File file2 = new java.io.File("fn2.txt" );
    java.io.PrintWriter mercury1 = new PrintWriter(file2);
    java.io.File file3 = new java.io.File("fn3.txt" );
    ...etc
}
因此,手动写出一个新文件的行。字符串fn的值为earth,fn1的值为sun,fn2的值为mercury,等等。我想在理想情况下使用for循环,但不知道如何在参数上循环!例如,我需要一种方法使循环重新创建此模式:

java.io.File filei = new java.io.File("fn.txt");
java.io.PrintWriter fn1 = new PrintWriter(filei);

java.io.File filei = new java.io.File("fn1.txt");
java.io.PrintWriter (fn1)1 = new PrintWriter(filei);
我需要一个打印器和每个参数的文件。printwriter需要有一个名称,该名称是附加数字1的参数。该文件需要命名为'argument.txt',因此fn.txt、fn1.txt等,我不确定我的代码目前是否能实现。我怀疑它会直接命名文件fn、fn1等,而不是使用参数所代表的字符串,但在完成更改之前无法检查,为此我需要循环

这并不简洁,也可能不清楚。如果不清楚,请告诉我,我会尝试更好地使用它。

传递
列表
,或
字符串[]
作为参数,而不是传递6个字符串

或者将所有这些字符串放在方法开头的数组中,并在该数组上循环

或者使用一个参数,该参数允许在接收方法中的数组时(从调用方)传递与参数一样多的字符串:

public void createFile(String... fn) {
    for (String f : fn) {
        ...
在呼叫者中:

createFile("a", "b", "c");
列表
字符串[]
作为参数传递,而不是传递6个字符串

或者将所有这些字符串放在方法开头的数组中,并在该数组上循环

或者使用一个参数,该参数允许在接收方法中的数组时(从调用方)传递与参数一样多的字符串:

public void createFile(String... fn) {
    for (String f : fn) {
        ...
在呼叫者中:

createFile("a", "b", "c");

正如JB Nizet所建议的,但我建议最好的方法是o使用列表文件名作为输入参数。

正如JB Nizet所建议的,但我建议最好的方法是o使用列表文件名作为输入参数。

您能将这些值作为数组或列表传递吗?就像public void
createFile(String[]names){for(String name:names){…}
检查这个:@pzaenger,事实证明,我并没有仔细考虑这个问题。我可以传递一个字符串数组,但前提是我能够以某种方式将对象的名称提取为字符串。如中所示,如果我创建了一个名为地球的行星对象,我如何获得作为字符串的地球值?所以它可以传递给一个方法?为什么不传递行星物体本身呢?对象没有名称。变量确实有名称。你可以在行星对象中有一个字符串类型的
名称
字段。@JBNizet这是一个非常好的主意,它让我的生活变得简单多了!谢谢您可以将这些值作为数组或列表传递吗?就像public void
createFile(String[]names){for(String name:names){…}
检查这个:@pzaenger,事实证明,我并没有仔细考虑这个问题。我可以传递一个字符串数组,但前提是我能够以某种方式将对象的名称提取为字符串。如中所示,如果我创建了一个名为地球的行星对象,我如何获得作为字符串的地球值?所以它可以传递给一个方法?为什么不传递行星物体本身呢?对象没有名称。变量确实有名称。你可以在行星对象中有一个字符串类型的
名称
字段。@JBNizet这是一个非常好的主意,它让我的生活变得简单多了!谢谢这不是回答,而是评论,也是判断。这不是回答,而是评论,也是判断