好吧我有两个字符串,两个字符串都有一个我想要的字符串(一个人的名字)。所以我可以处理他们中的任何一个从字符串中获取该名称。问题是哪一个使用效率更高,使用它的最佳方式。这是两个字符串:字符串1 -
<p><a href=\"http://abinet.org/wp-content/uploads/2014/02/molestation1.jpg
\" ><img class=\"aligncenter size-full wp-image-714\" src=\"http://abine
t.org/wp-content/uploads/2014/02/molestation1.jpg\" alt=\"molestation\"
width=\"540\" height=\"393\" /></a></p>\n<p><strong>Krishna Pujari</str
ong></p>\n<p>A 25-year-old man was Sunday arrested in Kerala on charges
of raping his mother, media reports.</p>\n<p>“This was happening for s
ome time and there used to be ruckus in their home over this. The nei.....
字符串2:
<p>Krishna Pujari A 25-year-old man was Sunday arrested in Kerala on charges
of raping his mother, media reports. “This was happening for some time and there
used to be ruckus in their home over this. The neighbours were unhappy over this
and filed a complaint and we arrested the man,” said a police official at …</p>\n
ghbours were unhappy over this and filed a complaint and we arrested
the man,” said a police official at the Pala police station.</p>\n<p>
在字符串中我想要的是&#34; Krishna Pujari&#34;。在第一个字符串中,它在这一行:强者之间(在wordpress中表示粗体)。
<strong>Krishna Pujari</strong>
在第二个字符串中,它是后面的第一个单词:
<p>
此数据来自使用json api的网站。有时字符串可能没有该名称。所以第一个字符串不会有
<strong>Krishna Pujari</strong>
并且String 2之后没有名称:
<p>
它将直接从&#34;一个25岁的男子是星期天......&#34;。当发生这种情况时,我根本不想提取任何字符串。 这是我用来提取该名称的代码:
int startIndex = content.indexOf("<strong>")+8;
String substring = content.substring(startIndex, startIndex+500);
int subendIndex = substring.indexOf("</strong></p>");
int endIndex = startIndex + subendIndex;
String short_content = content.substring(startIndex, endIndex);
这是有效的。但是我觉得这不是正确的方法,因为我不能依赖这个代码。因为如果找不到/ strong&gt;它会崩溃(当名称不存在时)。或者当名称不存在且该字符串中的其他单词为粗体(它将在/ strong&gt;中)时,它会给我那个我不想要的单词。
请告诉我提取该名称的最佳方法。唯一的可能性是,只有少数名称(4-5)将存在或根本不会有任何名称。
我的问题可能需要一点时间来理解,但可能很容易回答。我刚刚开始编程。请帮忙。
答案 0 :(得分:3)
您可以使用regex
提取strong
标记内的名称,而不是计算substring
这不是一个好主意。
<强>样品:强>
try {
String s = "<strong>Krishna Pujari</strong>";
Pattern p = Pattern.compile("<strong>(.+?)</strong>");
Matcher m = p.matcher(s);
m.find();
System.out.println(m.group(1));
} catch (IllegalStateException e) {
// this wont close your app
}