【问题标题】:Returning a href within a string返回字符串中的href
【发布时间】:2012-06-16 14:51:01
【问题描述】:

如何在字符串中返回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 的,我需要尽量减少下载占用,所以我不能使用正则表达式或第三方正则表达式库。

【问题讨论】:

  • 您是否尝试添加 RegExp 库:stackoverflow.com/questions/462048
  • @OmarIthawi 请查看问题编辑
  • http:\\www.google.com 不是有效的网址。你不能有反斜杠。

标签: java java-me


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    可靠地做到这一点的唯一方法是使用正则表达式。在 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/

    总体概念相同,语法略有不同

    【讨论】:

    • 对不起,我应该补充说他需要为它导入一个库
    【解决方案3】:

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

    在实践中,查找下一个空格字符的索引对于您当前的用例可能已经足够了,但这并不是一个完整的面向未来的解决方案。

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

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

    这也是您可能意识到您实际上应该寻找“http://”的索引,而不仅仅是“http”

    【讨论】:

      猜你喜欢
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      相关资源
      最近更新 更多