<1>方法一
package capital;
import java.util.Scanner;
public class CapitalDemo {
Scanner input=new Scanner(System.in);
String temp=null;
//定义一个让用户输入字符串的方法
public String write() {
System.out.print("请输入句子:");
temp=input.nextLine();
return temp;
}
//首字母变为大写的办法
public void capital(String str) {
//把接收的参数放到StringBuffer里面
StringBuffer sb=new StringBuffer(str);
//给str这个字符串在第一个位置加上空格
sb.insert(0, " ");
for (int i = 1; i <sb.length(); i++) {
//如果它的前一个是空值,就把当前值变为大写
if(sb.substring(i-1, i).equals(" ")) {
temp=sb.substring(i,i+1).toUpperCase();
//删除掉当前字符串的值
sb.deleteCharAt(i);
//在当前位置插入
sb.insert(i, temp);
}//if
}//for
//由于在上面的方法插入了一个空格,所以输出从第二个元素开始
System.out.print("首字母大写:");
System.out.print(sb.substring(1));
}//capital
}
package capital;
public class TestDemo {
public static void main(String[] args) {
CapitalDemo cap=new CapitalDemo();
cap.capital(cap.write());
}
}
结果如图
<2>方法二:使用ASCII码来变为大写
package capital;
import java.util.Arrays;
import java.util.Scanner;
/*将this is a test 转化为This Is A Test*/
public class Capital {
Scanner input=new Scanner(System.in);
//用户输入方法
public String write() {
System.out.print("请输入句子:");
String temp=input.nextLine();
return temp;
}
//使用ASCII编码把首字母变为大写
public void capital(String str) {
StringBuffer sb=new StringBuffer(str);
//给str这个字符串在第一个位置加上空格
sb.insert(0, " ");
//遍历sb这个字符串
for (int i = 1; i <sb.length(); i++) {
//如果它的前一个是空值
if(sb.substring(i-1, i).equals(" ")) {
//就把当前值放入数组
String []arr= {sb.substring(i,i+1)};
//把字符串的第一个变为大写
arr[0]+=(-32);
//把这个位置的元素变为大写
sb.replace(i, i+1, Arrays.toString(arr));
}//if
}//for
System.out.print(sb);
}//capital
}
package capital;
public class Test {
public static void main(String[] args) {
Capital cap=new Capital();
cap.capital(cap.write());
}
}