到目前为止,我对文件路径进行了硬编码以保存事实或将它们加载到内存中,但是当我使用 showSaveDialog() 请求文件并使用 getAbsolutePath() 获取路径和名称时,我已经对代码进行了修改。代码片段如下:
int retVal = fs.showSaveDialog(this);
if (retVal == fs.APPROVE_OPTION){
fn = fs.getSelectedFile().getAbsolutePath();
.
.
.
现在,接收字符串的变量称为 fichero 并用于如下 jess 语句:
motor.eval("(save-facts "+fichero+")");
motor 是 rete 引擎的实例。问题是 jess 使用字符串但带有简单的反斜杠“\”,并且它没有正确保存,因为它将所有字符串作为文件名。我使用了 Jess 控制台并注意到相同的字符串但带有双反斜杠 '\' 将其正确保存到指定的路径中。如何用字符串 fichero 上的双斜杠替换单斜杠?我尝试使用 fichero.replaceAll() 方法,使用两个字符串作为参数,一个带有单斜杠,另一个带有双斜杠,但似乎 java 不明白。所描述的参数声明为 String var1 = "\" 和 String var2 = "\\"。使用 println 我观察到每个都有一个单反斜杠和双反斜杠,但是没有 nt 在应用于 replaceAll() 方法时似乎有效。任何人都可以帮忙吗?提前致谢!