Java語(yǔ)言基礎(chǔ)知識(shí)
2.1簡(jiǎn)單數(shù)據(jù)類型
2.1.1 標(biāo)識(shí)符和保留字
1.標(biāo)識(shí)符
程序員對(duì)程序中的各個(gè)元素加以命名時(shí)使用的命名記號(hào)稱為標(biāo)識(shí)符(identifier)。Java語(yǔ)言中,標(biāo)識(shí)符是以字母,下劃線(_),美元符($)開始的一個(gè)字符序列,后面可以跟字母,下劃線,美元符,數(shù)字。例如,identifier,userName,User_Name,_sys_val,
$change為合法的標(biāo)識(shí)符,而2mail room#,class 為非法的標(biāo)識(shí)符。
2.保留字
具有專門的意義和用途,不能當(dāng)作一般的標(biāo)識(shí)符使用,這些標(biāo)識(shí)符稱為保留字(reserved
word),也稱為關(guān)鍵字,下面列出了java語(yǔ)言中的所有保留字:
bstract,
break,byte,boolean,catch,case,class,char,continue,default,double,do,
else,extends,false,final,float,for,finally,if,import,implements,int,
interface,instanceof,long,length,native,new,null,package,private,
protected,public,return,switch,synchronized,short,static,super,try,true,
this,throw,throws,threadsafe,transient,void,while 。
java語(yǔ)言中的保留字均用小寫字母表示。
2.1.2 數(shù)據(jù)類型概
? 1. java中的數(shù)據(jù)類型劃分
java語(yǔ)言的數(shù)據(jù)類型有簡(jiǎn)單類型和復(fù)合類型:
簡(jiǎn)單數(shù)據(jù)類型包括:
整數(shù)類型(Integer):byte,
short, int,
long
浮點(diǎn)類型(Floating):float,double
字符類型(Textual):char
布爾類型(Logical):boolean
復(fù)合數(shù)據(jù)類型包括:
class
interface
數(shù)組
2.常量和變量
常量:用保留字final來實(shí)現(xiàn)
final typeSpecifier
varName=value[,varName[=value]…];
如:final int
NUM=100;
變量:是java
程序中的基本存儲(chǔ)單元,它的定義包括變量名、變量類型和作用域幾個(gè)部分。其定義格式如下:
typeSpecifier
varName[=value[,varName[=value]…];
如:int count; char
c='a';
變量的作用域指明可訪問該變量的一段代碼,聲明一個(gè)變量的同時(shí)也就指明了變量的作用域。按作用域來分,變量可以有下面幾種:局部變量、類變量、方法參數(shù)
和例外處理參數(shù)。在一個(gè)確定的域中,變量名應(yīng)該是唯一的。局部變量在方法或方法的一個(gè)塊代碼中聲明,它的作用域?yàn)樗诘拇a塊(整個(gè)方法或方法中的某塊
代碼)。類變量在類中聲明,而不是在類的某個(gè)方法中聲明,它的作用域是整個(gè)類。方法參數(shù)傳遞給方法,它的作用域就是這個(gè)方法。例外處理參數(shù)傳遞給例外處理
代碼,它的作用域就是例外處理部分。
2.1.3 簡(jiǎn)單數(shù)據(jù)類型
1.布爾類型--boolean
布爾型數(shù)據(jù)只有兩個(gè)值true和false,且它們不對(duì)應(yīng)于任何整數(shù)值。布爾型變量的定義如:
boolean
b=true;
2.字符類型--char
字符常量:
字符常量是用單引號(hào)括起來的一個(gè)字符,如'a','A';
字符型變量:
類型為char,它在機(jī)器中占16位,其范圍為0~65535。字符型變量的定義如:
char
c='a'; /*指定變量c為char型,且賦初值為'a'*/
3.整型數(shù)據(jù)
整型常量:
◇ 十進(jìn)制整數(shù)
如123,-456,0
◇ 八進(jìn)制整數(shù)
以0開頭,如0123表示十進(jìn)制數(shù)83,-011表示十進(jìn)制數(shù)-9。
◇ 十六進(jìn)制整數(shù)
以0x或0X開頭,如0x123表示十進(jìn)制數(shù)291,-0X12表示十進(jìn)制數(shù)-18。
整型變量:
數(shù)據(jù)類型
|
所占位數(shù)
|
數(shù)的范圍
|
byte
|
8
|
-27~27-1
|
bhort
|
16
|
-215~215-1
|
int
|
32
|
-231~231-1
|
long
|
64
|
-263~263-1
|
4.浮點(diǎn)型(實(shí)型)數(shù)據(jù)
實(shí)型常量:
◇ 十進(jìn)制數(shù)形式
由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn),如0.123, 1.23, 123.0
◇ 科學(xué)計(jì)數(shù)法形式
如:123e3或123E3,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。
◇ float型的值,必須在數(shù)字后加f或F,如1.23f。
實(shí)型變量:
數(shù)據(jù)類型
|
所占位數(shù)
|
數(shù)的范圍
|
float
|
32
|
3.4e-038 ~3.4e+038
|
double
|
64
|
1.7e-038
~1.7e+038
|
5.簡(jiǎn)單數(shù)據(jù)類型的例子:
【例2.1】
public class
Assign {
public static void main (String args [ ] ) {
int x , y
; //定義x,y兩個(gè)整型變量
float z = 1.234f ; //指定變量z為float型,且賦初值為1.234
double w = 1.234 ; //指定變量w為double型,且賦初值為1.234
boolean flag = true ;
//指定變量flag為boolean型,且賦初值為true
char c ; //定義字符型變量c
String str ;
//定義字符串變量str
String str1 = " Hi " ; //指定變量str1為String型,且賦初值為Hi
c = ' A ' ; //給字符型變量c賦值'A'
str = " bye " ;
//給字符串變量str賦值"bye"
x = 12 ;
//給整型變量x賦值為12
y = 300; //給整型變量y賦值為300
}
}
2.1.4 簡(jiǎn)單數(shù)據(jù)類型中各類型數(shù)據(jù)間的優(yōu)先關(guān)系和相互轉(zhuǎn)換
1.不同類型數(shù)據(jù)間的優(yōu)先關(guān)系如下:
低------------------------------------------->高
byte,short,char->
int -> long -> float -> double
2.自動(dòng)類型轉(zhuǎn)換規(guī)則
整型,實(shí)型,字符型數(shù)據(jù)可以混合運(yùn)算。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)化為同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換從低級(jí)到高級(jí);
操作數(shù)1類型
|
操作數(shù)2類型
|
轉(zhuǎn)換后的類型
|
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
3.強(qiáng)制類型轉(zhuǎn)換
高級(jí)數(shù)據(jù)要轉(zhuǎn)換成低級(jí)數(shù)據(jù),需用到強(qiáng)制類型轉(zhuǎn)換,如:
int i;
byte
b=(byte)i; /*把int型變量i強(qiáng)制轉(zhuǎn)換為byte型*/
2.2 運(yùn)算符和表達(dá)式
2.2.1 運(yùn)算符
???
對(duì)各種類型的數(shù)據(jù)進(jìn)行加工的過程成為運(yùn)算,表示各種不同運(yùn)算的符號(hào)稱為運(yùn)算符,參與運(yùn)算的數(shù)據(jù)稱為操作數(shù),按操作數(shù)的數(shù)目來分,可有:
◇ 一元運(yùn)算符:++,--,+,-
◇ 二元運(yùn)算符:+,-,>
◇
三元運(yùn)算符:?:
基本的運(yùn)算符按功能劃分,有下面幾類:
1 算術(shù)運(yùn)算符:
+,―,*,/,%,++,――。
例如:
3+2;
a-b;
i++;
--i;
2 關(guān)系運(yùn)算符: >,<,>=,<=,==,!=。
例如:
count>3;
I==0;
n!=-1;
3 布爾邏輯運(yùn)算符: !,&&,|| 。
例如:
flag=true;
!(flag);
flag&&false;
4 位運(yùn)算符: >>,<<,>>>,&,|,^,~。
例如:
a=10011101;
b=00111001;則有如下結(jié)果:
a<<3 =11101000;
a>>3 =11110011
a>>>3=00010011;
a&b=00011001;
a|b=10111101;
~a=01100010; a^b=10100100;
5 賦值運(yùn)算符 =,及其擴(kuò)展賦值運(yùn)算符如+=,―=,*=,/=等。
例如:
i=3;
i+=3; //等效于i=i+3;
6 條件運(yùn)算符
? :
例如:result=(sum= =0 ? 1 :
num/sum);
7 其它:
包括分量運(yùn)算符· ,下標(biāo)運(yùn)算符
[],實(shí)例運(yùn)算符instanceof,內(nèi)存分配運(yùn)算符new,強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型),方法調(diào)用運(yùn)算符 ()
等。例如:
System.out.println("hello world");
int array1[]=new
int[4];
2.2.2 表達(dá)式
表達(dá)式是由操作數(shù)和運(yùn)算符按一定的語(yǔ)法形式組成的符號(hào)序列。一個(gè)常量或一個(gè)變量名字是最簡(jiǎn)單的表達(dá)式,其值即該常量或變量的值;表達(dá)式的值還可以用作其他運(yùn)算的操作數(shù),形成更復(fù)雜的表達(dá)式。
1.表達(dá)式的類型
表達(dá)式的類型由運(yùn)算以及參與運(yùn)算的操作數(shù)的類型決定,可以是簡(jiǎn)單類型,也可以是復(fù)合類型:
布爾型表達(dá)式:
x&&y||z;
整型表達(dá)式: num1+num2;
2.運(yùn)算符的優(yōu)先次序
表達(dá)式的運(yùn)算按照運(yùn)算符的優(yōu)先順序從高到低進(jìn)行,同級(jí)運(yùn)算符從左到右進(jìn)行:
優(yōu)先次序
|
運(yùn)算符
|
1
|
. [] ()
|
2
|
++ -- ! ~ instanceof
|
3
|
new (type)
|
4
|
* / %
|
5
|
+ -
|
6
|
>> >>> <<
|
7
|
> < >= <=
|
8
|
= = !=
|
9
|
&
|
10
|
^
|
11
|
|
|
12
|
&&
|
13
|
||
|
14
|
?:
|
15
|
= += -= *= /= %= ^=
|
16
|
&= |= <<= >>= >>>=
|
例如,下述條件語(yǔ)句分四步完成:
Result=sum==0?1:num/sum;
第1步:result=sum==0?1:(num/sum)
第2步:result=(sum==0)?1:(num/sum)
第3步:result=((sum==0)?1:(num/sum))
第4步:result=
2.3控制語(yǔ)句
Java程序通過控制語(yǔ)句來執(zhí)行程序流,完成一定的任務(wù)。程序流是由若干個(gè)語(yǔ)句組成的,語(yǔ)句可以是單一的一條語(yǔ)句,如c=a+b,也可以是用大括號(hào){}括起來的一個(gè)復(fù)合語(yǔ)句。Java中的控制語(yǔ)句有以下幾類:
◇ 分支語(yǔ)句:if-else,
switch
◇ 循環(huán)語(yǔ)句:while,
do-while, for
◇
與程序轉(zhuǎn)移有關(guān)的跳轉(zhuǎn)語(yǔ)句:break, continue, return
◇
例外處理語(yǔ)句:try-catch-finally, throw
◇
注釋語(yǔ)句://,/* */, /** */
2.3.1 分支語(yǔ)句
分支語(yǔ)句提供了一種控制機(jī)制,使得程序的執(zhí)行可以跳過某些語(yǔ)句不執(zhí)行,而轉(zhuǎn)去執(zhí)行特定的語(yǔ)句。
1.條件語(yǔ)句 if-else
if(boolean-expression)
statement1;
[else
statement2;]
2.多分支語(yǔ)句 switch
switch
(expression){
case value1 : statement1;
break;
case value2 :
statement2;
break;
…………
case valueN :
statemendN;
break;
[default : defaultStatement;
]
}
◇表達(dá)式expression的返回值類型必須是這幾種類型之一:int,byte,char,short。
◇
case子句中的值valueN必須是常量,而且所有case子句中的值應(yīng)是不同的。
◇default子句是可選的。
◇break語(yǔ)句用來在執(zhí)行完一個(gè)case分支后,使程序跳出switch語(yǔ)句,即終止switch語(yǔ)句的執(zhí)行(在一些特殊情況下,多個(gè)不同的case值要執(zhí)行一組相同的操作,這時(shí)可以不用break)。
2.3.2 循環(huán)語(yǔ)句
循環(huán)語(yǔ)句的作用是反復(fù)執(zhí)行一段代碼,直到滿足終止循環(huán)的條件為止。Java語(yǔ)言中提供的循環(huán)語(yǔ)句有:
◇
while語(yǔ)句
◇
do-while語(yǔ)句
◇
for語(yǔ)句
? 1.while語(yǔ)句
[initialization]
while
(termination){
body;
[iteration;]
}
2.do-while語(yǔ)句
[initialization]
do
{
body;
[iteration;]
} while
(termination);
3.for語(yǔ)句
for (initialization;
termination; iteration){
body;
}
◇for語(yǔ)句執(zhí)行時(shí),首先執(zhí)行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語(yǔ)句,最后執(zhí)行迭代部分。完成一次循環(huán)后,重新判斷終止條件。
◇初始化、終止以及迭代部分都可以為空語(yǔ)句(但分號(hào)不能省),三者均為空的時(shí)候,相當(dāng)于一個(gè)無(wú)限循環(huán)。
◇在初始化部分和迭代部分可以使用逗號(hào)語(yǔ)句,來進(jìn)行多個(gè)操作。逗號(hào)語(yǔ)句是用逗號(hào)分隔的語(yǔ)句序列。
for( i=0, j=10;
i
……
}/j;>
2.3.3
跳轉(zhuǎn)語(yǔ)句
◇break語(yǔ)句
◇ continue語(yǔ)句
◇
返回語(yǔ)句return
? 1.break語(yǔ)句
◇
在switch語(yǔ)中,break語(yǔ)句用來終止switch語(yǔ)句的執(zhí)行。使程序從switch語(yǔ)句后的第一個(gè)語(yǔ)句開始執(zhí)行。
◇ 在Java中,可以為每個(gè)代碼塊加一個(gè)括號(hào),一個(gè)代碼塊通常是用大括號(hào){}括起來的一段代碼。加標(biāo)號(hào)的格式如下:
BlockLabel:
{ codeBlock }
break語(yǔ)句的第二種使用情況就是跳出它所指定的塊,并從緊跟該塊的第一條語(yǔ)句處執(zhí)行。例如:
break
BlockLabel;
break語(yǔ)句
a:{…… //標(biāo)記代碼塊a
b:{…… //標(biāo)記代碼塊b
c:{……
//標(biāo)記代碼塊c
break b;
…… //此處的語(yǔ)句塊不被執(zhí)行
}
……
/此處的語(yǔ)句塊不被執(zhí)行
}
…… //從此處開始執(zhí)行
}
2.continue語(yǔ)句
continue語(yǔ)句用來結(jié)束本次循環(huán),跳過循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行終止條件的判斷,以決定是否繼續(xù)循環(huán)。對(duì)于for語(yǔ)句,在進(jìn)行終止條件的判斷前,還要先執(zhí)行迭代語(yǔ)句。它的格式為:
continue;
也可以用continue跳轉(zhuǎn)到括號(hào)指明的外層循環(huán)中,這時(shí)的格式為
continue
outerLable;
例如:
outer: for( int i=0; i<10; i++ ){
//外層循環(huán)
inner: for( int j=0; j<10; j++ ){ //內(nèi)層循環(huán)
if( i
……
continue outer;
/j>
}
……
}
……
}
3.返回語(yǔ)句return
return語(yǔ)句從當(dāng)前方法中退出,返回到調(diào)用該方法的語(yǔ)句處,并從緊跟該語(yǔ)句的下一條語(yǔ)句繼續(xù)程序的執(zhí)行。返回語(yǔ)句有兩種格式:
return
expression ;
return;
return語(yǔ)句通常用在一個(gè)方法體的最后,否則會(huì)產(chǎn)生編譯錯(cuò)誤,除非用在if-else語(yǔ)句中
2.3.4
例外處理語(yǔ)句
包括try,catch,finally,throw語(yǔ)
2.4
數(shù)組
java語(yǔ)言中,數(shù)組是一種最簡(jiǎn)單的復(fù)合數(shù)據(jù)類型。數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素具有相同的數(shù)據(jù)類型,可以用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來唯一地確定數(shù)組中的元素。數(shù)組有一維數(shù)組和多維數(shù)組。
2.4.1 一維數(shù)組
1. 一維數(shù)組的定義
type arrayName[
];
類型(type)可以為Java中任意的數(shù)據(jù)類型,包括簡(jiǎn)單類型和復(fù)合類型。
例如:
int
intArray[ ];
Date dateArray[];
2.一維數(shù)組的初始化
◇
靜態(tài)初始化
int intArray[]={1,2,3,4};
String stringArray[]={"abc",
"How", "you"};
◇
動(dòng)態(tài)初始化
1)簡(jiǎn)單類型的數(shù)組
int
intArray[];
intArray = new int[5];
2)復(fù)合類型的數(shù)組
String
stringArray[ ];
String stringArray = new String[3];/*為數(shù)組中每個(gè)元素開辟引用
空間(32位)
*/
stringArray[0]= new String("How");//為第一個(gè)數(shù)組元素開辟空間
stringArray[1]= new
String("are");//為第二個(gè)數(shù)組元素開辟空間
stringArray[2]=
new String("you");// 為第三個(gè)數(shù)組元素開辟空間
3.一維數(shù)組元素的引用
數(shù)組元素的引用方式為:
arrayName[index]
index為數(shù)組下標(biāo),它可以為整型常數(shù)或表達(dá)式,下標(biāo)從0開始。每個(gè)數(shù)組都有一個(gè)屬性length指明它的長(zhǎng)度,例如:intArray.length指明數(shù)組intArray的長(zhǎng)度。
2.4.2 多維數(shù)組
Java語(yǔ)言中,多維數(shù)組被看作數(shù)組的數(shù)組。
1.二維數(shù)組的定義
type arrayName[ ][
];
type [ ][ ]arrayName;
2.二維數(shù)組的初始化
◇
靜態(tài)初始化
int intArray[ ][
]={{1,2},{2,3},{3,4,5}};
Java語(yǔ)言中,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以不要求二維數(shù)組每一維的大小相同。
◇ 動(dòng)態(tài)初始化
1)
直接為每一維分配空間,格式如下:
arrayName = new type[arrayLength1][arrayLength2];
int
a[ ][ ] = new int[2][3];
2) 從最高維開始,分別為每一維分配空間:
arrayName = new
type[arrayLength1][ ];
arrayName[0] = new
type[arrayLength20];
arrayName[1] = new
type[arrayLength21];
…
arrayName[arrayLength1-1] = new
type[arrayLength2n];
3) 例:
二維簡(jiǎn)單數(shù)據(jù)類型數(shù)組的動(dòng)態(tài)初始化如下,
int a[ ][ ] =
new int[2][ ];
a[0] = new int[3];
a[1] = new
int[5];
對(duì)二維復(fù)合數(shù)據(jù)類型的數(shù)組,必須首先為最高維分配引用空間,然后再順次為低維分配空間。
而且,必須為每個(gè)數(shù)組元素單獨(dú)分配空間。
例如:
String
s[ ][ ] = new String[2][ ];
s[0]= new String[2];//為最高維分配引用空間
s[1]= new String[2]; //為最高維分配引用空間
s[0][0]= new String("Good");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
s[0][1]= new String("Luck");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
s[1][0]= new String("to");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
s[1][1]= new String("You");// 為每個(gè)數(shù)組元素單獨(dú)分配空間
3.二維數(shù)組元素的引用
對(duì)二維數(shù)組中的每個(gè)元素,引用方式為:arrayName[index1][index2]
例如:
num[1][0];
4.二維數(shù)組舉例:
【例2.2】?jī)蓚€(gè)矩陣相乘
public
class MatrixMultiply{
public static void main(String args[]){
int
i,j,k;
int a[][]=new int [2][3]; //動(dòng)態(tài)初始化一個(gè)二維數(shù)組
int
b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//靜態(tài)初始化
一個(gè)二維數(shù)組
int
c[][]=new int[2][4]; //動(dòng)態(tài)初始化一個(gè)二維數(shù)組
for
(i=0;i<2;i++)
for (j=0; j<3
;j++)
a[i][j]=(i+1)*(j+2);
for (i=0;i<2;i++){
for
(j=0;j<4;j++){
c[i][j]=0;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
}
}
System.out.println("*******Matrix
C********");//打印Matrix
C標(biāo)記
for(i=0;i<2;i++){
for
(j=0;j<4;j++)
System.out.println(c[i][j]+"
");
System.out.println();
}
}
}
2.5
字符串的處理
2.5.1
字符串的表示
Java語(yǔ)言中,把字符串作為對(duì)象來處理,類String和StringBuffer都可以用來表示一個(gè)字符串。(類名都是大寫字母打頭)
1.字符串常量
字符串常量是用雙引號(hào)括住的一串字符。
"Hello
World!"
2.String表示字符串常量
用String表示字符串:
String(
char chars[ ] );
String( char chars[ ], int startIndex, int numChars
);
String( byte ascii[ ], int hiByte );
String( byte ascii[ ], int
hiByte, int startIndex, int numChars );
String使用示例:
String s=new
String() ; 生成一個(gè)空串
下面用不同方法生成字符串"abc":
char
chars1[]={'a','b','c'};
char chars2[]={'a','b','c','d','e'};
String
s1=new String(chars1);
String s2=new String(chars2,0,3);
byte
ascii1[]={97,98,99};
byte ascii2[]={97,98,99,100,101};
String s3=new
String(ascii1,0);
String s4=new String(ascii2,0,0,3);
3.用StringBuffer表示字符串
StringBuffer( ); /*分配16個(gè)字符的緩沖區(qū)*/
StringBuffer( int len ); /*分配len個(gè)字符的緩沖區(qū)*/
StringBuffer( String s ); /*除了按照s的大小分配空間外,再分配16個(gè)
字符的緩沖區(qū)*/
2.5.2 訪問字符串
? 1.類String中提供了length( )、charAt( )、indexOf( )、lastIndexOf(
)、getChars( )、getBytes( )、toCharArray( )等方法。
◇ public int
length() 此方法返回字符串的字符個(gè)數(shù)
◇ public char
charAt(int index) 此方法返回字符串中index位置上的字符,其中index 值的 范圍是0~length-1
◇ public int indexOf(int ch)
public
lastIndexOf(in ch)
返回字符ch在字符串中出現(xiàn)的第一個(gè)和最后一個(gè)的位置
◇ public int indexOf(String str)
public int
lastIndexOf(String str)
返回子串str中第一個(gè)字符在字符串中出現(xiàn)的第一個(gè)和最后一個(gè)的位置
◇ public int indexOf(int ch,int fromIndex)
public lastIndexOf(in ch ,int
fromIndex)
返回字符ch在字符串中位置fromIndex以后出現(xiàn)的第一個(gè)和最后一個(gè)的位置
◇ public int indexOf(String str,int
fromIndex)
public int lastIndexOf(String str,int
fromIndex)
返回子串str中的第一個(gè)字符在字符串中位置fromIndex后出現(xiàn)的第一個(gè)和最后一個(gè)的位置。
◇ public void getchars(int srcbegin,int end ,char
buf[],int dstbegin)
srcbegin 為要提取的第一個(gè)字符在源串中的位置,
end為要提取的最后一個(gè)字符在源串中的位置,字符數(shù)組buf[]存放目的字符串, dstbegin 為提取的字符串在目的串中的起始位置。
◇public void getBytes(int srcBegin, int
srcEnd,byte[] dst, int
dstBegin)
參數(shù)及用法同上,只是串中的字符均用8位表示。
2.類StringBuffer提供了 length( )、charAt( )、getChars(
)、capacity()等方法。
方法capacity()用來得到字符串緩沖區(qū)的容量,它與方法length()所返回的值通常是不同的。
2.5.3
修改字符串
修改字符串的目的是為了得到新的字符串,類String和類StringBuffer都提供了相應(yīng)的方法。有關(guān)各個(gè)方法的使用,參考java
2 API。
1.String類提供的方法:
concat( )
replace( )
substring(
)
toLowerCase( )
toUpperCase( )
◇ public String contat(String
str);
用來將當(dāng)前字符串對(duì)象與給定字符串str連接起來。
◇ public
String replace(char oldChar,char
newChar);
用來把串中出現(xiàn)的所有特定字符替換成指定字符以生成新串。
◇
public String substring(int beginIndex);
public String substring(int
beginIndex,int endIndex);
用來得到字符串中指定范圍內(nèi)的子串。
◇ public String
toLowerCase();
把串中所有的字符變成小寫。
◇ public
String toUpperCase();
把串中所有的字符變成大寫。
2.StringBuffer類提供的方法:
append( )
insert( )
setCharAt(
)
如果操作后的字符超出已分配的緩沖區(qū),則系統(tǒng)會(huì)自動(dòng)為它分配額外的空間。
◇
public synchronized StringBuffer append(String
str);
用來在已有字符串末尾添加一個(gè)字符串str。
◇ public
synchronized StringBuffer insert(int offset, String
str);
用來在字符串的索引offset位置處插入字符串str。
◇ public
synchronized void setCharAt(int index,char ch);
用來設(shè)置指定索引index位置的字符值。
注意:String中對(duì)字符串的操作不是對(duì)源操作串對(duì)象本身進(jìn)行的,而是對(duì)新生成的一個(gè)源操作串對(duì)象的拷貝進(jìn)行的,其操作的結(jié)果不影響源串。
相反,StringBuffer中對(duì)字符串的連接操作是對(duì)源串本身進(jìn)行的,操作之后源串的值發(fā)生了變化,變成連接后的串。
2.5.4 其它操作
? 1.字符串的比較
String中提供的方法:
equals( )和equalsIgnoreCase(
)
它們與運(yùn)算符'= ='實(shí)現(xiàn)的比較是不同的。運(yùn)算符'= ='比較兩個(gè)對(duì)象是否引用同一個(gè)實(shí)例,而equals( )和equalsIgnoreCase(
)則比較 兩個(gè)字符串中對(duì)應(yīng)的每個(gè)字符值是否相同。
2.字符串的轉(zhuǎn)化
java.lang.Object中提供了方法toString(
)把對(duì)象轉(zhuǎn)化為字符串。
3.字符串"+"操作
運(yùn)算符'+'可用來實(shí)現(xiàn)字符串的連接:
String s = "He is "+age+"
years old.";
其他類型的數(shù)據(jù)與字符串進(jìn)行"+"運(yùn)算時(shí),將自動(dòng)轉(zhuǎn)換成字符串。具體過程如下:
String s=new
StringBuffer("he is").append(age).append("years old").toString();
注意:除了對(duì)運(yùn)算符"+"進(jìn)行了重載外,java不支持其它運(yùn)算符的重載。
posted on 2006-05-25 13:01 bisal 閱讀(248) 評(píng)論(0) 編輯 收藏