第一次實現的思路
-
使用
split()
方法將給定的字符串按空格分割。 -
獲取得到的字符串數組的首字母,使用
Character.toUpperCase()
變成大寫。 -
將字符串數組變成字符數組,將得到的字符數組使用
valueOf()
方法變成字符串。 -
使用
StringBuffer
對象的append()
將得到的字符串連起來。實現如下:
public class UpperTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "my name is baba";
String ss[] = s.split(" ");
for(int i = 0;i<ss.length;i++) {
char ch = ss[i].charAt(0);
char t = Character.toUpperCase(ch);
char ch2[] = ss[i].toCharArray();
ch2[0] = t;
ss[i] = String.valueOf(ch2);
}
StringBuffer sb = new StringBuffer();
for(int i = 0; i < ss.length;i++){
sb.append(ss[i] +" ");
}
String v = sb.toString();
System.out.println(v);
}
}
總結起來就是,先拆分,再將指定位置的字母變成大寫,最後拼接起來。那麼問題在哪呢?拼接起來過程態繁瑣。先變字符,再變字符串,最後再append
。如果去掉char這一環呢?對,可以的,使用substring()
可以得到指定位置的字符。
第二次實現的思路
- 使用
split()
方法將給定的字符串按空格分割。 - 獲取得到的字符串數組的首字母,使用
Character.toUpperCase()
變成大寫。 - 使用
substring()
方法截取除首字母之外的字符串。 - 將首字母和第3步產生的字符串相加。
實現如下:
public class UpperTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "my name is baba";
String ss[] = s.split(" ");
for(int i = 0;i<ss.length;i++) {
char ch = ss[i].charAt(0);
char t = Character.toUpperCase(ch);
String rest = ss[i].substring(1);
ss[i] = t+rest ;
}
String result = "";
for(String word:ss) {
result +=word+" ";
}
result= result.trim();
System.out.println(result);
}
}