第一次实现的思路
-
使用
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);
}
}