Android开发。
响应是这样的:
<div id="Song" data-airtime="14:12:52" data-runtime="207.25">
<span id="artist">Weeknd</span><span id="titl">Can't Feel My Face</span></div>
我需要艺术家和标题。子串索引(value)方法的问题,即响应长度不是固定大小,例如,如果艺术家名称更长......等等。
如何子串或拆分以匹配正确的表格?
我试过左边没问题。
String left = name.substring(name.indexOf("artist\">")+8);
答案 0 :(得分:1)
您不想手动拆分字符串。如您所见,长度是可变的,您无法预测很多事情。
以下链接提供了许多解析HTML的解决方案。
答案 1 :(得分:0)
您可以解析XML或使用正则表达式。为了简单起见,我建议使用正则表达式。以下是如何使用它:
JRadioButtons
Pattern pattern = Pattern.compile("<span id=\"artist\">(.*?)<\\/span><span id=\"titl\">(.*?)<\\/span>");
Matcher m = pattern.matcher(input);
if (m.find() {
MatchResult result = m.toMatchResult();
String artist = result.group(1);
String title = result.group(3);
}
是您拥有的XML。
在正则表达式中,括号内的模式表示捕获组。它们允许您从匹配中提取结果。但请注意,在代码中检索组1和3.这是因为对于每个捕获组,您都拥有自己的捕获组和结果。因此,input
将是第一组的模式,result.group(0)
将是第二组的模式。