<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());
}
}