До сих пор я жестко задавал пути к файлам, чтобы сохранять факты или загружать их в память, но я вносил изменения в код, когда запрашивал файл с помощью showSaveDialog() и получал путь, а также имя с помощью getAbsolutePath(). Фрагмент кода выглядит следующим образом:
int retVal = fs.showSaveDialog(this);
if (retVal == fs.APPROVE_OPTION){
fn = fs.getSelectedFile().getAbsolutePath();
.
.
.
Теперь переменная, которая получает строку, называется fichero и используется в предложении jess следующим образом:
motor.eval("(save-facts "+fichero+")");
мотор является экземпляром двигателя рете. Проблема в том, что jess использует строку, но с простой обратной косой чертой '\', и она не сохраняется правильно, потому что она получает всю строку как имя файла. Я использовал консоль Jess и заметил, что та же строка, но с двойной обратной косой чертой на ней «\», правильно сохраняет ее по указанному пути. как я могу заменить одинарную косую черту на двойную в String fichero? Я попытался использовать метод fichero.replaceAll(), используя две строки в качестве аргументов, одну с одинарной косой чертой, а другую с двойной косой чертой, но кажется, что java этого не понимает. Описанные аргументы объявлены как String var1 = "\" и String var2 = "\\". Используя println, я заметил, что каждый из них имеет одинарную и двойную обратную косую черту соответственно, но, похоже, не работает при применении к методу replaceAll(). Кто-нибудь может помочь? Заранее спасибо!