把每個英文單字第一個字母大寫#

題目:

給一句英文(全小寫),寫一個方法(函式),把每個單字第一個字母都大寫後回傳。

這題滿常遇見,在寫程式的時候也很容易用到。

Example:

input1
capitalize('good morning my friend.')
output1
'Good Morning My Friend'
input2
capitalize('hi there, i am tom.')
output2
'Hi There, I Am Tom.'

想法#

第一個字大寫,其他用迴圈跑,若前面有空格則用 toUpperCase() , 若沒有則繼續下去。

JavaScript 解法#

function capitalize(str) {
let result = str[0].toUpperCase();
for (let i = 1; i < str.length; i++) {
if (str[i - 1] === ' ') {
result += str[i].toUpperCase();
} else {
result += str[i];
}
}
return result;
}

Java 解法#

public class MyCapitalize {
private static String capitalize(String str) {
String result = "";
result += Character.toString(str.charAt(0)).toUpperCase();
for (int i = 1; i < str.length(); i++) {
if (Character.toString(str.charAt(i - 1)).equals(" ")) {
result += Character.toString(str.charAt(i)).toUpperCase();
} else {
result += Character.toString(str.charAt(i));
}
}
return result;
}
public static void main(String[] args) {
capitalize("wang anmnsdff asdf asdf ");
}

此文同時發佈於鐵人賽