我有這種投入Java的大寫字符替換左右(前後)特定字符
word w'ord wo'rd
我需要轉換爲大寫的單詞的開始和'
字符後右兩個字符(它可以存在多次)。
我需要的輸出(使用前面的例子)是
word W'Ord Wo'Rd
我試圖用一個簡單的圖案
s.replaceAll("(\\w)(\\w*)'(\\w)", "$1");
但我無法將第1組和第3轉換爲大寫
編輯: 在我發現主要問題的一個小錯誤後,我編輯@Wiktor Stribizew代碼,以包括我錯過的情況。
Matcher m = Pattern.compile("(\\w)(\\w*)'(\\w)").matcher(s);
StringBuffer result = new StringBuffer();
while (m.find()) {
m.appendReplacement(result, m.group(1).toUpperCase() + m.group(2) + "'" + m.group(3).toUpperCase());
}
m.appendTail(result);
s = result.toString();
這工作確實。運行這段代碼並在所有需要轉換的行上看到輸出,我發現主要問題中存在一個小錯誤。我現在調整了主要問題,以包括我錯過的情況 –
字符串失敗:\t String s =「wo'rd w'ord wo'r'd」; – Optional
@DevilingMaster:同樣的方法在這裏是有效的:將你需要的東西捕獲到組中,然後在'while'塊內按照需要操作每個組。 –