Несколько вещей:
Не используйте ==
для сравнения строк на равенство. Вместо этого используйте метод equals()
. ==
проверяет, указывают ли оба объекта на одно и то же место в памяти, тогда как метод String # equals () оценивает сравнение значений в объектах.
Не инициализировать вашу строку переменные таким образом: String filename = new String("");
. Это вызов String Constructor. Что вы должны сделать: String filename = "";
.
Вы не можете проверить, содержит ли конкретная переменная одну из нескольких возможностей таким образом:
if (orgid == "G" || "ZG" || "S") {
Как упоминалось ранее, вы необходимо использовать метод String # equals () и для сравнения с другими возможностями необходимо сравнить каждую строку с переменной, например:
if (orgid.equals("G") || orgid.equals("ZG") || orgid.equals("S")) {
Вместо этого лучше использовать оператор switch для чего-то вроде этого, например:
/* Using the String#toUpperCase() method ensures that
we don't need to worry about what letter case happens
to be in orgid. */
switch (orgid.toUpperCase()) {
case "G":
case "ZG":
case "S":
filename = "N_" + df.format(date) + ".txt";
break;
case "L":
filename = "D_" + df.format(date) + ".txt";
break;
case "F":
case "IV":
filename = "F_" + df.format(date) + ".txt";
break;
default:
System.err.println("Can Not Establish A Proper File Name (missing prefix)!");
return;
}