[英]Split a string in java based on custom logic
我有一個字符串
"target/abcd12345671.csv"
我需要提取
"abcd12345671"
從字符串使用Java。 誰能建議我一種干凈的方法來提取它。
核心Java
String fileName = Paths.get("target/abcd12345671.csv").getFileName().toString();
fileName = filename.replaceFirst("[.][^.]+$", "")
使用apache 公共資源
import org.apache.commons.io.FilenameUtils;
String fileName = Paths.get("target/abcd12345671.csv").getFileName().toString();
String fileNameWithoutExt = FilenameUtils.getBaseName(fileName);
我喜歡這里的正則表達式替換方法:
String filename = "target/abcd12345671.csv";
String output = filename.replaceAll("^.*/|\\..*$", "");
System.out.println(output); // abcd12345671
在這里,我們使用正則表達式替換刪除所有內容,包括最后的正斜杠,以及從擴展名中的點到文件名末尾的所有內容。 這留下了您真正想要的內容。
這是使用正則表達式的方法
String filename = "target/abcd12345671.csv";
var pattern = Pattern.compile("target/(.*).csv");
var matcher = pattern.matcher(filename);
if (matcher.find()) {
// Whole matched expression -> "target/abcd12345671.csv"
System.out.println(matcher.group(0));
// Matched in the first group -> in regex it is the (.*) expression
System.out.println(matcher.group(1));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.