所以,我不确定这里发生了什么,如果我把encode
或decode
放在args[0]
中,它应该可以正常工作,但它没有。我有所有的导入,我还有一个我正在使用的实用程序类。我不明白为什么,当我使用这些参数运行程序时: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");
忽略大小写