【问题标题】:shortening a URL string programmatically以编程方式缩短 URL 字符串
【发布时间】:2019-03-21 02:10:20
【问题描述】:

我的应用中有一个EditText,用户可以输入一个 youtube 网址。

示例网址如下:

https://www.youtube.com/watch?v=gXrWv6zlg8s

当我抓取文本并将其转换为字符串时,我只需要最后一个字符,例如 gXrWv6zlg8s

如何将字符串值缩短为仅此字符集?

final EditText url = findViewById(R.id.url);
b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String a;
            a = url.getText().toString().trim();}
}

感谢您的建议。

【问题讨论】:

  • 感谢@UnholySheep 会编写一个单独的方法并传入 (a)?

标签: java string onclick android-edittext


【解决方案1】:
String url= "https://www.youtube.com/watch?v=gXrWv6zlg8s";
System.out.println(url.substring(url.lastIndexOf("=") + 1));

【讨论】:

  • 不安全 -> 假设参数始终存在并且在该索引位置。
【解决方案2】:

安全答案:

    Uri uri = Uri.parse("https://www.youtube.com/watch?v=gXrWv6zlg8s");
    if(uri.getQueryParameterNames().contains("v"))
    Log.d(DEBUG,uri.getQueryParameter("v"));

添加“抛出 videoCodeMissingException”。

编辑:

    String myUrl = "https://www.youtube.com/watch?v=gXrWv6zlg8s";
    Uri uri = Uri.parse(myUrl);
    if (uri.getQueryParameterNames().contains("v")) {
        Log.d(DEBUG, uri.getQueryParameter("v"));
    } else {
        throw new NoVideoParameterFoundException(myUrl);
    }

private class NoVideoParameterFoundException extends Exception{
        public NoVideoParameterFoundException(String message) {
            super(message);
        }
    }

【讨论】:

  • 你能解释一下吗,使用下面的方法不是更容易吗?
  • 不完全确定为什么投反对票。这是唯一不假定字符串始终具有参数键“v”以及 v 值的唯一方法。如果 Youtube 添加了另一个参数...其他建议的方法可能会失败...或者说如果视频是不可用,你得到一些其他字符串......它甚至可能抛出一个空/越界异常。
  • 不确定我的朋友?我会为你标记它;-) 谢谢你的帮助
  • @Jcov :: 绝对是最佳答案(赞成)。这是唯一能让用户控制选择参数并获取该参数值的答案。否决它的人应该给出解释
  • 非常感谢 Jcov。人们很快就改变了对你投反对票的想法哈哈
【解决方案3】:

这样就可以了:

a = url.substring(url.lastIndexOf("=") + 1);

【讨论】:

  • 我仍然使用 url = getText first @Nicholas 吗?
  • 你需要将它分配给a,我已经相应地编辑了我的答案。
  • 谢谢你的朋友,我会把你的答案标记为你的答案,因为你实际上是第一个
  • 不能再等 5 分钟
猜你喜欢
  • 2015-07-19
  • 1970-01-01
  • 2011-05-07
  • 2017-11-11
  • 1970-01-01
  • 2011-09-28
  • 2013-07-31
  • 2011-04-28
  • 2019-10-04
相关资源
最近更新 更多