gpt4 book ai didi

Java程序根据字符串比较不退出

转载 作者:行者123 更新时间:2023-11-30 09:28:57 25 4
gpt4 key购买 nike

我是一名新手,正在做一项向我们介绍如何使用 Java 中的文件的家庭作业,我正在尝试为用户提供一个选项,以便在他们未能成功创建文件时提前退出(例如,如果他们没有写入磁盘的权限)。这是我试图从中结束程序的 try catch block :

    // Loop used to repeat try catch block until a file is successfully created/opened
FileWriter FW = null; // Create & initialize the FW object outside of the loop
// to ensure availability in the correct scope
boolean success = false;
while (success == false) {
// Try catch block for handling possible exception thrown by the
// FileWriter constructor
try {
FW = new FileWriter(fileName);
success = true;
}

// Catch allows the user to attempt to rename file and includes option
// to exit program immediately (presumably after multiple failed attempts)
catch (IOException e) {
String failString = "exit";
fileName = (String)JOptionPane.showInputDialog(
"There was an error creating your file. Please\n" +
"ensure you have permission to write to the directory\n" +
"and then re-enter your desired file name. Please do\n" +
"not attempt to specify a directory. Please do not\n" +
"use special characters. Type 'exit' to end the\n" +
"program now.");
if (fileName != failString) {
fileName = fileName + ".txt";
}

else {
JOptionPane.showMessageDialog(null, "Exiting...", "EXITING", 1);
System.exit(0);
}
}
}

我认为应该发生的是用户输入术语“exit”作为新文件名,程序将立即退出。但是,当我进入 exit 时,程序只是创建一个名为 exit.txt 的文件并继续执行。我很茫然。

关于错误的任何想法或关于更好的方法的建议?

最佳答案

使用 equals() 比较字符串,而不是 !===

所以你需要

if (!fileName .equals(failstring)) {
fileName = fileName + ".txt";
} else {
System.exit(1);
}

有关详细信息,请参阅 Java 教程:http://docs.oracle.com/javase/tutorial/java/data/comparestrings.html

顺便说一句:通常使用“积极”的表达方式比使用消极的表达方式更好(人脑可以更好地应对它们)。所以推荐使用:

if (fileName .equals(failstring)) {
System.exit(1);
} else {
fileName = fileName + ".txt";
}

代替

关于Java程序根据字符串比较不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com