Tôi có một chuỗi:
/abc/def/ghfj.doc
Tôi muốn giải nén ghfj.doc
từ cái này, tức là chuỗi con sau cái cuối cùng /
, hoặc cái đầu tiên /
từ bên phải.
Ai đó có thể vui lòng cung cấp một số trợ giúp?
Tôi có một chuỗi:
/abc/def/ghfj.doc
Tôi muốn giải nén ghfj.doc
từ cái này, tức là chuỗi con sau cái cuối cùng /
, hoặc cái đầu tiên /
từ bên phải.
Ai đó có thể vui lòng cung cấp một số trợ giúp?
Câu trả lời:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
Một cách thực hiện rất đơn giản với 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];
bạn đã thử gì nó rất đơn giản:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Một cách khác là sử dụng cái này .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Nếu bạn truyền null cho phương thức này, nó sẽ trả về null. Nếu không có kết quả khớp với dấu phân cách, nó sẽ trả về chuỗi rỗng.
StringUtils
thư viện, câu trả lời này cho thấy nóng để thực hiện: stackoverflow.com/a/33935645/2966583
Với ổi làm điều này:
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
Cuối cùng cấu hình Splitter
và sử dụng
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
Ngoài ra hãy xem bài viết này về Bộ chia ổi và bài viết này về Iterables ổi
Trong Kotlin bạn có thể sử dụng substringAfterLast
, chỉ định một dấu phân cách.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Từ tài liệu :
Trả về một chuỗi con sau lần xuất hiện cuối cùng của dấu phân cách. Nếu chuỗi không chứa dấu phân cách, trả về thiếuD006iterValue mặc định cho chuỗi gốc.
Tôi nghĩ rằng sẽ tốt hơn nếu chúng ta sử dụng trực tiếp chức năng phân tách
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"