'之间的子串'符号

时间:2017-03-13 17:25:05

标签: java

<img src='http://res.cloudinary.com/test/image/upload/v1/testFolder/1024x1024.jpg'/>

我想获取''之间的网址。这是我尝试过的,它使String索引超出范围:-1错误。

String html = "<img src='http://res.cloudinary.com/test/image/upload/v1/testFolder/1024x1024.jpg'/>";

html.substring((html.indexOf("'")), html.indexOf("'"));

我还尝试了html.substring((html.indexOf("'")) +1 , html.indexOf("'"));

如何获取''之间的网址?

3 个答案:

答案 0 :(得分:3)

您需要保留第一个索引,以便搜索超出该点的下一个索引

int idx = html.indexOf("'") + 1;
int idx2 = html.indexOf("'", idx); // this will find the next ' character

System.out.println(html.substring(idx, idx2));

答案 1 :(得分:1)

您必须将html.indexOf(&#34;&#39;&#34;)更改为html.lastIndexOf(&#34;&#39;&#34;)。

试一试:

public static void main(String[] args) throws ClassNotFoundException {
    String html = "<img src='http://res.cloudinary.com/test/image/upload/v1/testFolder/1024x1024.jpg'/>";

    System.out.println(html.substring(html.indexOf("'") + 1, html.lastIndexOf("'")));
}

答案 2 :(得分:0)

你也可以使用正则表达式模式......

Pattern p = Pattern.compile("'(.*?)'");
Matcher m = p.matcher(html);
m.find();
m.group(1); // will return http://res.cloudinary.com/test/image/upload/v1/testFolder/1024x1024.jpg