Java心路

          Java、Eclipse、Ajax......一個(gè)都不能少

           

          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)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(4)

          隨筆檔案

          文章檔案

          相冊(cè)

          Java戰(zhàn)友兄弟

          常用技術(shù)交流平臺(tái)

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 黄陵县| 文安县| 漳浦县| 天气| 文登市| 阿坝县| 长子县| 休宁县| 方正县| 汤原县| 榆社县| 临泽县| 南宁市| 兰溪市| 台南县| 昆明市| 磐安县| 沁水县| 白朗县| 通化县| 平罗县| 崇左市| 玛纳斯县| 兴隆县| 奉新县| 米易县| 图木舒克市| 樟树市| 江津市| 山丹县| 唐山市| 抚宁县| 如皋市| 福建省| 会理县| 庆云县| 大庆市| 五台县| 吴堡县| 济南市| 乌兰浩特市|