Java:从特定字符开始的string中获取子string
我有一个string:
/abc/def/ghfj.doc
我想从中提取ghfj.doc
,即最后一个/
,或第一个/
从右边的子string。
有人可以提供一些帮助吗?
String example = "/abc/def/ghfj.doc"; System.out.println(example.substring(example.lastIndexOf("/") + 1));
String.split()
一个非常简单的实现:
String path = "/abc/def/ghfj.doc"; // Split path into segments String segments[] = path.split("/"); // Grab the last segment String document = segments[segments.length - 1];
你有什么尝试? 这很简单:
String s = "/abc/def/ghfj.doc"; s.substring(s.lastIndexOf("/") + 1)
你可以使用Apache commons:
对于最后一次出现之后的子串,使用此方法。
而对于第一次出现的子串,等价的方法在这里 。
这也可以得到文件名
import java.nio.file.Paths; import java.nio.file.Path; Path path = Paths.get("/abc/def/ghfj.doc"); System.out.println(path.getFileName().toString());
将打印ghfj.doc
我认为如果直接使用split函数会更好
String toSplit = "/abc/def/ghfj.doc"; String result[] = toSplit.split("/"); String returnValue = result[result.length - 1]; //equals "ghfj.doc"
另一种方法是使用这个 。
String path = "/abc/def/ghfj.doc" String fileName = StringUtils.substringAfterLast(path, "/");
如果你传递null给这个方法,它将返回null。 如果没有与分隔符匹配,它将返回空string。