【问题标题】:How to get sub-part of a string in java? [duplicate]如何在java中获取字符串的子部分? [复制]
【发布时间】:2020-10-12 00:58:06
【问题描述】:

我有一个这样的字符串:

https://storage.googleapis.com/migrasibo/banner/pm_banner_200617_2LLZ.png?GoogleAccessId=storage@alfagift-non-production-228103.iam.gserviceaccount.com&Expires=1592365768&Signature=egF4189zrTm4Lv%2FMioX%2FMSixttA2mkqWajUSfZlM1vquoovBZEpdp5vyJ0tKo7QPVfuiRw1Kmm7eWotJVL7kYypcHCSbq9lKECFI6t4t7RT%2BKVonkZrC0Ma%2Fd7tDR3mjcMjNPxkofMtO9NvDmGUTxJnHUwQ%2Bl%2BMzbShbCMziT%2FdAR0oRzGC940VKsIZHpXkiQzNaf1qPhrm%2F2JuSiddeOx2gdlaIy%2B%2FOaRK7SKTjLiqyNz0GIOqbNszcYeQ%2BCaenrKmxFe7b9xZMyp2c8uaRzlpSksNgf%2B7pswzIwuwF1wLl7WEHadyFVHVOgW8hGbRqJkK%2FQ9Yy%2B9xvCURVMWQdvw%3D%3D

我想获取该网址的一部分,如下所示:

https://storage.googleapis.com/migrasibo/banner/pm_banner_200617_2LLZ.png

获取它的代码应该是什么?

【问题讨论】:

  • urlStr = urlStr.substring(0, urlStr.indexOf("?")); - 这里是substring的解释- docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/…
  • 我认为你应该在这种情况下使用正则表达式
  • substring,不是subString
  • 欢迎。但是注意indexOf,如果没有?,它可以返回-1,这将在substring触发错误。要处理它,您需要一些条件。但如果你想保持简单,我会推荐 Tim Biegeleisen 的回答,使用正则表达式。
  • 是的,我明白了。但是对于这种情况。字符串值 ”?”永远在那里

标签: java


【解决方案1】:

试试这个:

String content="https://storage.googleapis.com/migrasibo/banner/pm_banner_200617_2LLZ.png?GoogleAccessId=storage@alfagift-non-production-228103.iam.gserviceaccount.com&Expires=1592365768&Signature=egF4189zrTm4Lv%2FMioX%2FMSixttA2mkqWajUSfZlM1vquoovBZEpdp5vyJ0tKo7QPVfuiRw1Kmm7eWotJVL7kYypcHCSbq9lKECFI6t4t7RT%2BKVonkZrC0Ma%2Fd7tDR3mjcMjNPxkofMtO9NvDmGUTxJnHUwQ%2Bl%2BMzbShbCMziT%2FdAR0oRzGC940VKsIZHpXkiQzNaf1qPhrm%2F2JuSiddeOx2gdlaIy%2B%2FOaRK7SKTjLiqyNz0GIOqbNszcYeQ%2BCaenrKmxFe7b9xZMyp2c8uaRzlpSksNgf%2B7pswzIwuwF1wLl7WEHadyFVHVOgW8hGbRqJkK%2FQ9Yy%2B9xvCURVMWQdvw%3D%3D";

System.out.println(content.split("\\?")[0]);

输出:

https://storage.googleapis.com/migrasibo/banner/pm_banner_200617_2LLZ.png

【讨论】:

    【解决方案2】:

    一个快速而肮脏的解决方案是使用正则表达式替换删除查询字符串(如果存在):

    String url = "https://storage.googleapis.com/migrasibo/banner/pm_banner_200617_2LLZ.png?GoogleAccessId=storage@alfagift-non-production-228103.iam.gserviceaccount.com&Expires=1592365768&Signature=egF4189zrTm4Lv%2FMioX%2FMSixttA2mkqWajUSfZlM1vquoovBZEpdp5vyJ0tKo7QPVfuiRw1Kmm7eWotJVL7kYypcHCSbq9lKECFI6t4t7RT%2BKVonkZrC0Ma%2Fd7tDR3mjcMjNPxkofMtO9NvDmGUTxJnHUwQ%2Bl%2BMzbShbCMziT%2FdAR0oRzGC940VKsIZHpXkiQzNaf1qPhrm%2F2JuSiddeOx2gdlaIy%2B%2FOaRK7SKTjLiqyNz0GIOqbNszcYeQ%2BCaenrKmxFe7b9xZMyp2c8uaRzlpSksNgf%2B7pswzIwuwF1wLl7WEHadyFVHVOgW8hGbRqJkK%2FQ9Yy%2B9xvCURVMWQdvw%3D%3D";
    url = url.replaceAll("\\?.*$", "");
    System.out.println(url);
    

    打印出来:

    https://storage.googleapis.com/migrasibo/banner/pm_banner_200617_2LLZ.png
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 2018-05-23
      • 2011-01-08
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多