首先我要解釋下字母在機器中都是以Unicode的形式儲存的,一個數(shù)字會指向一個字母。上圖是一部分的對應(yīng)關(guān)系,你可以看到a=97, A=65,他們之間的差是32,而且是個衡量。
創(chuàng)新互聯(lián)主營阿拉善盟網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),阿拉善盟h5成都微信小程序搭建,阿拉善盟網(wǎng)站營銷推廣歡迎阿拉善盟等地區(qū)企業(yè)咨詢
用java編寫就是
public?class?lowerCasetoCapital?{
public?static?void?main(String[]?args)?{
System.out.println('a'?-?'A');
ltoc('a');
ltoc('z');
}
public?static?void?ltoc(char?ch)?{
ch?-=?32;
System.out.println(ch);
}
}
輸出:
32
A
Z
import?java.util.Scanner;
public?class?CharDemo?{
public?static?void?main(String[]?args)?{
System.out.println("請輸入一段字符串");
Scanner?input?=?new?Scanner(System.in);
String?str?=?input.nextLine();
char[]?cs?=?str.toCharArray();//字符串到字符數(shù)組
for?(int?i?=?0;?i??cs.length-1;?i++)?{
if(cs[i]=='a'){//提高性能,減少循環(huán)次數(shù),如果字母是a就不管了,直接進行下次循環(huán)
continue;
}
boolean?flag?=?false;//沒有找到相同的字母?表示為false
for?(int?j?=?i+1;?j??cs.length;?j++)?{
if(cs[i]==?cs[j]){
cs[j]='a';//找到后,修改為字符'a'
flag?=?true;//找到了相同的字符就吧flag修改為true
}
}
if(flag){//如果找到了.那么就修改cs[i]也為字符'a'
cs[i]?=?'a';
}
}
System.out.println(new?String(cs));
}
}
運行測試
請輸入一段字符串
abcdce
abadae
public class Test{
public static void main(String[] args){
String s = "a" ;
System.out.print(s) ;
s=s.toUpperCase();
System.out.println("轉(zhuǎn)換為大寫字母為:"+s) ;
}
}
剛寫的有點錯誤,修改了一下.
我試過了,能運行成功.
你試下看!!!
獲取小寫字母的assic碼減去32就是大寫字幕的assic碼了
例如:
public class Test {
public static void main(String args[]) {
char ca = 'a';
int ia = (int)ca - 32;
char ba = (char)ia;
System.err.println(ba);
}
}
輸出的就是a的大寫A
題目分析:
分析題目要求,應(yīng)該從標準輸入接受一個小寫字母;
對法輸入進行合法性判斷。對于非法輸入顯示錯誤信息,提示用戶重新輸入;
編碼思路
讀取標準輸入使用Scanner,并且在使用完在finally中進行close
因為非法輸入需要重新輸入,所以使用while循環(huán)。在非法輸入時,打印提示信息,并用continue重新接受輸入。在合法輸入時,進行字母大小寫轉(zhuǎn)換,并用break跳出循環(huán);
因為字母的ASCII碼整數(shù)表示是按照字母順序連續(xù)的,所以可以使用差值的方法進行小寫字母轉(zhuǎn)換大寫字母。
示例代碼
public?static?void?main(String[]?args)?{
Scanner?scanner?=?null;
try?{
while?(true)?{
System.out.println("請輸入一個小寫字母:");
scanner?=?new?Scanner(System.in);
String?line?=?scanner.nextLine();
char[]?input?=?line.toCharArray();
if?(input.length?!=?1)?{
System.out.println("輸入長度有誤,請重新輸入!");
continue;
}?else?{
char?lower?=?input[0];
if?(lower??'a'??lower??'z')?{
char?upper?=?(char)?(lower?-?'a'?+?'A');
System.out.println(lower?+?"的大寫字母是"?+?upper);
break;
}else{
System.out.println("輸入的不是小寫字母,請重新輸入!");
continue;
}
}
}
}?finally?{
if?(scanner?!=?null)
scanner.close();
}
}
public?class?TestChange?{
public?static?void?main(String[]?args)?{
int?a=55;
int?b=66;
int?temp;//用于交換時存放的臨時變量
System.out.println("交換之前a="+a+",b="+b);
//-------------交換?start-------------
temp=a;
a=b;
b=temp;
//-------------交換?end---------------
System.out.println("交換之后a="+a+",b="+b);
}
}