用JAVA扫描程序初始化数组
我想使用用JAVA扫描程序初始化数组,java,arrays,java.util.scanner,args,Java,Arrays,Java.util.scanner,Args,我想使用Scanner从控制台初始化args。有可能吗?args在您使用java命令运行程序时由java初始化,例如:java Main.class a b c 所以,这不是我们在程序中初始化的东西。尽管可以在main方法中重新初始化args,但不应该这样做,因为它(a)会丢失以前的值,(b)会影响参数的不变性 您可能会创建一个新的数组,并要求用户输入,例如: public class Main { public static void main(String[] args) {
Scanner
从控制台初始化args
。有可能吗?args
在您使用java
命令运行程序时由java初始化,例如:java Main.class a b c
所以,这不是我们在程序中初始化的东西。尽管可以在main
方法中重新初始化args
,但不应该这样做,因为它(a)会丢失以前的值,(b)会影响参数的不变性
您可能会创建一个新的数组
,并要求用户输入,例如:
public class Main {
public static void main(String[] args) {
args = new String[]{"0 0 1 1"};
}
}
String[]数组=新字符串[5];
扫描仪=新的扫描仪(System.in);
System.out.println(“输入”+array.length+“输入:”);
for(int i=0;i
args
包含调用时传递给Java程序的命令行参数
例如,如果我像这样创建PrintArgs
类:
String[] array = new String[5];
Scanner scanner = new Scanner(System.in);
System.out.println("Enter "+ array.length + " inputs :" );
for(int i = 0; i < array.length ; i++){
array[i] = scanner.nextLine();
}
public class ReadFileUsingScanner{
public static void main (String[] args) {
try {
File f = new File(args[0]); // suppose you passed the file path as first String
Scanner input = new Scanner(f);
while (input.hasNextLine()) { // loop through every line
System.out.println(input.nextLine()); // print it out
}
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
现在,我可以运行PrintArgs
并将Strings
传递给args
,例如,在我编写的命令行上:
public class PrintArgs {
public static void main (String[] args) {
for (String s: args) {// loop through args array
System.out.println(s); // print out every String
}
}
}
因此,它将在控制台上打印:
$java PrintArgs First Second Third
因此,您不需要扫描仪
来读取字符串[]args
数组
此外,如果要将文件路径作为字符串参数传递给args
,然后使用扫描仪从中读取,可以执行以下操作,例如:
First
Second
Third
然后使用scanner运行readfiles
,例如:
String[] array = new String[5];
Scanner scanner = new Scanner(System.in);
System.out.println("Enter "+ array.length + " inputs :" );
for(int i = 0; i < array.length ; i++){
array[i] = scanner.nextLine();
}
public class ReadFileUsingScanner{
public static void main (String[] args) {
try {
File f = new File(args[0]); // suppose you passed the file path as first String
Scanner input = new Scanner(f);
while (input.hasNextLine()) { // loop through every line
System.out.println(input.nextLine()); // print it out
}
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
等等,什么?不,您不初始化args
;已经为你准备好了。您所要做的就是在命令行上传入值。如果不想使用命令行,则只能使用Scanner
。你想解决什么问题?数组中的一个字符串值?是的,它是“可能的”。但是为什么不创建一个新数组,而不使用args
?这只比垃圾args
要难一点。