在java中对两端的字符串进行子串

时间:2016-10-06 12:48:28

标签: java android string

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);

2 个答案:

答案 0 :(得分:1)

您不想手动拆分字符串。如您所见,长度是可变的,您无法预测很多事情。

以下链接提供了许多解析HTML的解决方案。

How to use regular expressions to parse HTML in Java?

答案 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)将是第二组的模式。