ฉันมีสตริง:
/abc/def/ghfj.doc
ฉันต้องการแยกghfj.doc
จากนี้คือสตริงย่อยหลังสุดท้าย/
หรือ/
จากขวา
ใครช่วยกรุณาช่วยบ้าง
ฉันมีสตริง:
/abc/def/ghfj.doc
ฉันต้องการแยกghfj.doc
จากนี้คือสตริงย่อยหลังสุดท้าย/
หรือ/
จากขวา
ใครช่วยกรุณาช่วยบ้าง
คำตอบ:
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)
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
ถ้าคุณผ่านโมฆะไปที่วิธีนี้มันจะกลับมาเป็นโมฆะ หากไม่มีการจับคู่กับตัวคั่นมันจะกลับสตริงที่ว่างเปล่า
StringUtils
ห้องสมุดคำตอบนี้แสดงให้เห็นว่าน่าสนใจมาก: stackoverflow.com/a/33935645/2966583
คุณสามารถใช้ Apache Commons:
สำหรับ substring หลังการใช้งานเกิดขึ้นครั้งล่าสุดนี้วิธีการ
และสำหรับ substring หลังจากที่เกิดขึ้นครั้งแรกวิธีเทียบเท่าเป็นที่นี่
นอกจากนี้ยังสามารถรับชื่อไฟล์
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
ด้วยGuava ให้ทำสิ่งนี้:
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
กำหนดค่าSplitter
และใช้งานในที่สุด
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
ดูที่บทความนี้เกี่ยวกับตัวแยกฝรั่งและบทความเกี่ยวกับฝรั่ง Iterables
ใน Kotlin คุณสามารถใช้substringAfterLast
ระบุตัวคั่น
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
จากเอกสาร :
ส่งคืนสตริงย่อยหลังจากการเกิดขึ้นครั้งสุดท้ายของตัวคั่น หากสตริงไม่มีตัวคั่นให้ส่งคืน missingDelimiterValue ซึ่งจะใช้ค่าเริ่มต้นเป็นสตริงเดิม
ฉันคิดว่ามันจะดีกว่าถ้าเราใช้ฟังก์ชั่นแยกโดยตรง
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"