簡體   English   中英

正確使用字符串lastIndexOf

[英]Right using of String lastIndexOf

我的字符串String str ="12,123 123!abc123.abc",.! 定界符,我想刪除最后一個123。如果我使用StringBuffer str1c = new StringBuffer(str)並使用int last = str1c.lastIndexOf("123")我將得到last =14。但這是錯誤的,因為要獲取索引清除為“ 123”,附近沒有任何字母。 我想使str1c ="12,123 !abc123.abc"

您將需要使用正則表達式,並且僅需替換最后一個匹配項,因此您將需要使用StringBuilder#reverse()反轉所有內容並使用反向的正則表達式,因此無需使用\\b321\\b \\b123\\b而是使用\\b321\\b ,因此您的最終代碼將是:

String result = new StringBuilder(
    new StringBuilder(str).reverse().toString().replaceFirst("\\b321\\b", "")
).reverse().toString();
System.out.println(result);

輸出:

12,123 !abc123.abc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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