Java 编码和解码程序无法通过 args 传递关键字
Java encode and decode program cant pass key word through args
所以,我不确定这里发生了什么,如果我将 encode
或 decode
放在 args[0]
中,它应该可以正常工作,但事实并非如此。我有所有的导入,我也有一个我正在使用的实用程序 class。我不明白为什么,当我 运行 使用这些参数的程序时:java Prog4 encode fly message.txt
它无法正常工作。它将直接转到最后一个 else 语句。
public class Prog4 {
public static void main(String[] args){
if (args.length != 3){
System.out.println("Enter the right amount of arguments!");
System.exit(0);
}
String command=args[0];
String key= args[1];
String fileName = args[2];
File file = new File(args[2]);
String fileExtention="";
if(args[0]=="encode"){
fileExtention=".crypt";
}
else if (args[0]=="decode"){
fileExtention=".decrypt";
}
else{
System.out.println("Enter decode or encode!");
System.exit(0);
}
试试这个:
args[0].equals("encode")
还有这个:
args[0].equals("decode")
比较java中的字符串...
您使用 ==
检查引用是否相等。
您应该使用 .equals()
检查值是否相等。
args[0]=="encode"
错了!
它检查对象引用是否相等,而不是值是否相等!
使用:
args[0].equals("encode");
或
args[0].equalsIgnoreCase("encode");
忽略大小写
所以,我不确定这里发生了什么,如果我将 encode
或 decode
放在 args[0]
中,它应该可以正常工作,但事实并非如此。我有所有的导入,我也有一个我正在使用的实用程序 class。我不明白为什么,当我 运行 使用这些参数的程序时:java Prog4 encode fly message.txt
它无法正常工作。它将直接转到最后一个 else 语句。
public class Prog4 {
public static void main(String[] args){
if (args.length != 3){
System.out.println("Enter the right amount of arguments!");
System.exit(0);
}
String command=args[0];
String key= args[1];
String fileName = args[2];
File file = new File(args[2]);
String fileExtention="";
if(args[0]=="encode"){
fileExtention=".crypt";
}
else if (args[0]=="decode"){
fileExtention=".decrypt";
}
else{
System.out.println("Enter decode or encode!");
System.exit(0);
}
试试这个:
args[0].equals("encode")
还有这个:
args[0].equals("decode")
比较java中的字符串...
您使用 ==
检查引用是否相等。
您应该使用 .equals()
检查值是否相等。
args[0]=="encode"
错了!
它检查对象引用是否相等,而不是值是否相等!
使用:
args[0].equals("encode");
或
args[0].equalsIgnoreCase("encode");
忽略大小写