String s = aaa-bbb-ccc-ddd-ee-23-xyz;如何在Java中的5分隔符後截斷字符串?
我需要將上面的字符串轉換爲aaa-bbb-ccc-ddd-ee,這意味着我的輸出應該只在第五個分隔符之前打印單詞。可以幫助解決這個問題嗎?
String s = aaa-bbb-ccc-ddd-ee-23-xyz;如何在Java中的5分隔符後截斷字符串?
我需要將上面的字符串轉換爲aaa-bbb-ccc-ddd-ee,這意味着我的輸出應該只在第五個分隔符之前打印單詞。可以幫助解決這個問題嗎?
你可以使用正則表達式:
String s = "aaa-bbb-ccc-ddd-ee-23-xyz";
Pattern p = Pattern.compile("^\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+");
Matcher matcher = p.matcher(s);
matcher.find();
System.out.println(matcher.group(0));
輸出爲aaa-bbb-ccc-ddd-ee
如果您已經不僅僅是字母越多,你可以在\\w
與[^\\-]
其抓住所有的字符,但delemiter更換。
使用Pattern和Matcher是這樣的:
String s = "aaa-bbb-ccc-ddd-ee-23-xyz";
Pattern pattern = Pattern.compile("^((.+?-){4}[^-]+).*$");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
s = matcher.group(1);
}
* - 搜索所有符號。 ? - 懶惰的工作
(* - ?) - ' - '
{4} - 在結果字符串 ' - ',這與符號結束搜索字符序列的4倍
[^ - ] + - 在搜索字符後沒有' - '
。* - 您以後的另一個字符
matcher.group(1) - 返回第一組。這是((。+? - ){4} [^ - ] +)
谷歌搜索yielded http://programming.guide/java/nth-occurrence-in-string.html –
你可以簡單地遍歷字符串並計算您遇到的分隔符的數量。在計算5個分隔符後,創建一個從第0個索引到第5個分隔符索引的子串 – Flaom
這看起來像是一項家庭作業,請注意詳細說明並顯示一些代碼,以便知道至少您已嘗試過某些內容。不要指望人們做你的功課。 –