簡體   English   中英

基於自定義邏輯在java中拆分字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM