【发布时间】:2012-05-28 14:07:25
【问题描述】:
有没有一种简单的方法来获取字符串的倒数第二个分隔子字符串?
String original = "/1/6/P_55/T_140";
在本例中,生成的子字符串为"P_55/T_140"
我想在这个子字符串的开头找到正斜杠的索引(/)
我知道String.lastIndexOf() 调用两次会有所帮助。但是寻找一种通用的更清洁的方法。也许对任何 N.
【问题讨论】:
有没有一种简单的方法来获取字符串的倒数第二个分隔子字符串?
String original = "/1/6/P_55/T_140";
在本例中,生成的子字符串为"P_55/T_140"
我想在这个子字符串的开头找到正斜杠的索引(/)
我知道String.lastIndexOf() 调用两次会有所帮助。但是寻找一种通用的更清洁的方法。也许对任何 N.
【问题讨论】:
但是寻找一种更清洁的通用方法。也许对任何 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。
【讨论】:
获取媒体文件所在的文件夹名称
/storage/emulated/0/WhatsApp/Media/WhatsApp Video/VID-20170812-WA0000.mp4
使用下面的代码
String folderName = filePath.substring(filePath.lastIndexOf('/',filePath.lastIndexOf('/')-1),filePath.lastIndexOf('/'));
将文件夹名称返回为“whatsApp Video”
【讨论】:
获取上一个字符串
这—— 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('/'));
【讨论】: