gpt4 book ai didi

java - 保存事实时的 jess 和反斜杠

转载 作者:太空宇宙 更新时间:2023-11-04 14:46:44 24 4
gpt4 key购买 nike

到目前为止,我对文件路径进行了硬编码,以便保存事实或将它们加载到内存中,但是当我使用 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 我观察到每个反斜杠分别有一个和两个反斜杠,但在应用于 ReplaceAll() 方法时似乎不起作用。有人可以帮忙吗?提前致谢!

最佳答案

replaceAll 中的第一个字符串是一个模式。在模式中,必须通过在另一个反斜杠前面添加前缀来转义单个“\”。在替换字符串中,“\”也有特殊含义。

s = s.replaceAll( "\\\\", "\\\\\\\\" );

奇怪,但尽管如此......

关于java - 保存事实时的 jess 和反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24312675/

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