在Java中处理常规String

时间:2013-09-13 18:50:03

标签: java string

我有一个具有常规表单的String文本,并希望获取此String的两个部分。 String的格式为

"<html><div style=\"text-align:center;\"><b>****</b><br><i>Aula: </i><b>****</b></div></html>"

****表示我想要的字符串部分。 我能怎么做? 我正在使用JAVA,字符串也是用HTML编写的。

我们可以看到字符串中有趣的部分都受<b><\b>

的限制

2 个答案:

答案 0 :(得分:5)

如果这是HTML字符串的完全形式,那么您可以使用<b></b>的位置使用子字符串方法(如果您的HTML代码可以更改,则应使用HTML解析器)

String s = "<html><div style=\"text-align:center;\"><b>first</b><br><i>Aula: </i><b>second</b></div></html>";
int start = s.indexOf("<b>");
int end = s.indexOf("</b>");
String firstMatch = s.substring(start + "<b>".length(), end);

//now we can start looking for next `<b>` after position where we found `</b>`
start = s.indexOf("<b>", end);
//and look for </b> after position that we found latest <b>
end = s.indexOf("</b>", start);
String secondMatch = s.substring(start + "<b>".length(), end);

System.out.println(firstMatch);
System.out.println(secondMatch);

输出:

first
second

答案 1 :(得分:4)

您有几个选择。最明显的,但可能不是最好的,是使用正则表达式。请查看String.replaceAll

更好的选择是使用HTML解析器。一个例子是JSoup