【问题标题】:String previous last index字符串上一个最后一个索引
【发布时间】:2012-05-28 14:07:25
【问题描述】:

有没有一种简单的方法来获取字符串的倒数第二个分隔子字符串?

String original = "/1/6/P_55/T_140";

在本例中,生成的子字符串为"P_55/T_140"

我想在这个子字符串的开头找到正斜杠的索引(/

我知道String.lastIndexOf() 调用两次会有所帮助。但是寻找一种通用的更清洁的方法。也许对任何 N.

【问题讨论】:

    标签: java csv


    【解决方案1】:

    但是寻找一种更清洁的通用方法。也许对任何 N.

    在循环中调用String.lastIndexOf(int,int) 将非常有效,并且可以说非常干净:

        int pos = str.length();
        for (int i = 0; i < n; i++) {
            pos = str.lastIndexOf('/', pos - 1);
        }
        String out = str.substring(pos + 1);
    

    这可以很容易地变成一个辅助函数,获取str'/'n,并返回out

    【讨论】:

    • 这也将是一个非常快速的解决方案。
    【解决方案2】:

    获取媒体文件所在的文件夹名称

    /storage/emulated/0/WhatsApp/Media/WhatsApp Video/VID-20170812-WA0000.mp4

    使用下面的代码

    String folderName = filePath.substring(filePath.lastIndexOf('/',filePath.lastIndexOf('/')-1),filePath.lastIndexOf('/'));
    

    将文件夹名称返回为“whatsApp Video”

    【讨论】:

      【解决方案3】:

      获取上一个字符串

      这—— https://developer.co/RTsMlGTsCj/share

      到 - RTsMlGTsCj

      使用这个

      科特林

      val removeDomainName : String = scanResult.substring(
                      scanResult.lastIndexOf('/', scanResult.lastIndexOf('/') - 1),
                      scanResult.lastIndexOf('/')
                  )
                  val profileCode: String = removeDomainName.removePrefix("/")
      

      Java

      String removeDomainName = scanResult.substring(scanResult.lastIndexOf('/',scanResult.lastIndexOf('/')-1),scanResult.lastIndexOf('/'));
      

      【讨论】:

        猜你喜欢
        • 2011-08-13
        • 2013-05-30
        • 2013-05-06
        • 2013-09-18
        • 1970-01-01
        • 1970-01-01
        • 2018-09-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多