在我們日常的開發中,免不了對字串進行各種操作,
比如現在我需要獲取某個字串在一段文本中第 n 次出現的索引,
該怎麽做呢?
大部份小夥伴會覺得並不難,直接就寫了出來,
範例程式碼:
publicstaticintindexOf(String text, String searchText, int n) {
if (StrUtil.hasEmpty(text, searchText)) {
thrownewBusinessException(ErrorCode.PARAMS_ERROR, "有參數為空");
}
// 迴圈找到第 n 個換行符的位置
intindex = -1;
inttempIndex = -1;
for (inti = 0; i < text.length(); i++) {
tempIndex = text.indexOf(searchText, tempIndex + 1);
// tempIndex 等於 -1 text 中沒有出現 n 次 searchText,直接返回 -1
if (tempIndex == -1) {
return -1;
}
if ((i + 1) == n) {
index = tempIndex;
return index;
}
}
return index;
}
但大家有沒有想過,這種經典的場景會有現成的實作呢?
比如
hutool
,範例程式碼:
intindex = StrUtil.ordinalIndexOf(text, str, n);
本來我們需要一堆程式碼才能實作的功能,可能只需要一行程式碼就實作了。
你更喜歡哪種方式呢?歡迎投票並在評論區討論。
完整程式碼片段來源於程式碼小抄,歡迎點選進入小程式閱讀!
線上存取:https://www.codecopy.cn/post/66wxen
更多優質程式碼歡迎進入小程式檢視!
往期推薦