2015-12-06 2 views
0

Я использую строку в качестве моего источника для уравнения, и всякий раз, когда я пытаюсь добавить что-то вроде черточки тега, который:Правильно. escape-последовательность для над баром?

\ov5\ - creates a bar over the 5 

Однако, когда я добавляю это в строку Java, для того, чтобы скомпилировать Я должен написать это следующим образом:

string x= "\\ov5\\"; 

Казалось бы, что этот путь ломает JQMath и не работает, что приводит к разбитым уравнения. Вот код, в случае, если я сделал что-то ужасно неправильно:

WebView webView; 
String functext = "$$\\ov55\\$$"; 
    js = "<html><head>" 
      + "<link rel='stylesheet' href='file:///android_asset/mathscribe/jqmath-0.4.3.css'>" 
      + "<script src='file:///android_asset/mathscribe/jquery-1.4.3.min.js'></script>" 
      + "<script src='file:///android_asset/mathscribe/jqmath-etc-0.4.3.min.js'></script>" 
      + "</head><body>" 
      + functext + "</body></html>"; 
    webView.loadDataWithBaseURL("", js, "text/html", "UTF-8", ""); 

EDIT: Для разъяснения, конечный результат странно читает «$$ \ ov55 $$».

Обратите внимание, что при попытке использовать ту же строку на странице сайта JQMath here, она работает по назначению.

EDIT2: Вот некоторые значения отладки для точки останова, помещенного в webView.loadDataWithBaseURL:

текущая строка: Строка functext = "$$ \\\\ ov55 \\\\ $$";

действительный отображаемый результат: $$ \ ov55 \ $$

debug results: 
functext = $$\\ov55\\$$ 
js = <html><head><link rel='stylesheet' href='file:///android_asset/mathscribe/jqmath-0.4.3.css'><script src='file:///android_asset/mathscribe/jquery-1.4.3.min.js'></script><script src='file:///android_asset/mathscribe/jqmath-etc-0.4.3.min.js'></script></head><body>$$\\ov55\\$$</body></html> 

Любая помощь с погрузкой его в другом иначе, чем строка будет в значительной степени помочь.

+1

Очень неясно. Каков ваш ожидаемый результат и что вы получили вместо этого? И - кстати - '\\ ov5 \\' не '$$ ov \\ 55 \\ $$'. – Seelenvirtuose

+0

Моя ошибка. Я отредактировал для уточнения. Несоответствие было только опечаткой, проблема все еще стоит. –

ответ

1

Я думаю, что вы хотите: (. Первые \ потребности быть перед темov оператор)

String functext = "$$\\ov55\\$$"; 

EDIT: Еще одна возможность (так как выше было очевидно, просто опечатка в ваше сообщение, а не в вашем коде) заключается в том, что где-то в конвейере строка интерполируется второй раз. В этом случае вам необходимо удвоить обратную косую черту:

String functext = "$$\\\\ov55\\\\$$"; 

P.S. Если конечный результат читается "$$\ov55$$", тогда проблема, кажется, до того, как jqmath увидит что-нибудь. Код, который вы разместили, определенно не произвести этот результат для меня.

+0

К сожалению, это была опечатка. Проблема все еще стоит, как упоминалось в редакции –

+0

@JohanZ. - В этом случае у меня была другая идея. См. Мое редактирование. –

+0

Следуя вашему совету, я использовал двойную обратную косую черту, конечный результат был похож на первый: «$$ \ ov55 \ $$» - еще одна обратная косая черта в конце уравнения. –

1

Также jqMath принимает `(backquote) вместо \, если это упрощает процесс. Наконец, я бы поставил пробел между ov и 5, чтобы уточнить, что это не макрос с именем ov5. (Плюс см. Мой комментарий выше, чтобы удалить окончательный \.)

Смежные вопросы