繁体   English   中英

如何遍历Java参数?

[英]How do I loop over arguments 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的汞等。我想理想地使用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);

每个参数我都需要一个印刷机和文件。 印刷机需要有一个名称,该名称是附加了数字1的参数。 该文件需要命名为“ argument.txt”,因此应命名为fn.txt,fn1.txt等,但我不确定我的代码当前是否可以实现。 我怀疑它会从字面上命名文件fn,fn1等,而不是使用参数表示的字符串,但是直到我完成更改(我需要循环)后才能检查。

这并不简洁,也可能不清楚。 如果不清楚,请告诉我,我会尽力而为。

传递List<String>String[]作为参数,而不传递6个字符串。

或将所有这些String放在方法开头的数组中,并遍历该数组。

或使用vararg参数,该参数允许在从方法中接收数组的同时,传递尽可能多的String作为参数(来自调用者):

public void createFile(String... fn) {
    for (String f : fn) {
        ...

并在呼叫者中:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM