返回字符串中的href

时间:2012-06-16 14:51:01

标签: java java-me

如何在字符串中返回href,我可以访问起始位置但不知道如何获得最后位置:

这是我到目前为止所做的:

    String str = "sadf ad fas dfa http://www.google.com sdfa sadf as dfas";

    int index = str.indexOf("http");
    String href = str.substring(index , ???);

最终指数应该是什么?

请注意,这是针对j2me&我需要尽可能减少下载占用空间,因此我无法使用正则表达式或第三方正则表达式库。

3 个答案:

答案 0 :(得分:1)

如果没有找到空格,最好的选择可能是剪切最接近索引的空间或直到字符串的末尾。

答案 1 :(得分:0)

可靠地执行此操作的唯一方法是使用正则表达式。在Java SE中,您可以执行以下操作:

Pattern p = Pattern.compile("a*b"); // This is the Regular Expression to match
Matcher m = MY_PATTERN.matcher("aaaaaaab"); // This is the String to search through
while (m.find()) { // While there are matches found
    String s = m.group(1);  // Set String s equal to matches of the entire regex
    // s now contains "aaaaaaab"
}

组基本上是正则表达式的一部分。如果用括号括起部分内容,它会创建一个“组”,您可以选择性地访问仅与正则表达式的“部分”或“组”匹配的字符串部分。

在J2ME中,您需要导入一个像这样的正则表达式库:

http://code.google.com/p/regexp-me/

这是相同的整体概念,语法略有不同

答案 2 :(得分:0)

使用正则表达式库可能效率非常低,如果这是您在应用程序中唯一需要的地方。

在当前用例中找到下一个空格字符的索引可能已经足够好了,但它不是一个完整的面向未来的解决方案。

您可以做的是编写一个方法,根据URI的标准定义从String中提取所有URI:http://www.ietf.org/rfc/rfc2396.txt

(实际上,这意味着要查找形成URI特定区域的特殊字符以及不允许在URI中的字符)

这也是你如何意识到你应该真正寻找“http://”的索引,而不仅仅是“http”