我正在编写一个TextFormatter,用HTML标签替换特殊字符。
"_" = "< i >" and "< /i >"
"*" = "< b >" and "< /b >"
所以..我的代码如下..
public String convertBold() {
if (countStrings("_") % 2 == 1)
return 1;
String tag = "<b>";
String result = "";
while (find String("_", psn) >= 2) {
int newPsn = findString("_", psn);
// Copy the code before the "_" into the result
result = result + line.substring(psn, newPsn);
// Add the tag and change the tag
result = result + tag;
if (tag.equals("<B>"))
tag = "</B>";
else
tag = "<B>";
//update the psn
psn = newPsn++;
}
//copy the rest of the string
result = result + line.substring(psn);
return result;
}
我需要帮助的是HTML中的嵌套标记可能会导致错误。我不明白如何在HTML中正确嵌套标签,因为如果我在插入新标签之前没有关闭标签,则会导致标签错误。我知道我用这句话的方式可能会让它有点混乱,但我会感激任何帮助,如果我能回答任何问题以清理任何混乱让我知道。
提前谢谢! - Vexial
答案 0 :(得分:1)
假设您的标记文本正确无误:
/**
*@param s string to HTML
*
*/
String convert(String s){
while(s.indexOf("_")!= -1 ||s.indexOf("*") != -1){
if(s.indexOf("_") != -1){
s = s.replaceFirst("\\_", "<i>");
s = s.substring(0, s.lastIndexOf("_"))+"</i>"+s.substring(s.lastIndexOf("_")+1);
}
if(s.indexOf("*") != -1){
s = s.replaceFirst("\\*", "<b>");
s = s.substring(0, s.lastIndexOf("*"))+"</b>"
+s.substring(s.lastIndexOf("*")+1);
}
}//end while
return s;
}