麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

黑馬程序員——【Java基礎(chǔ)】——String、StringBuffer和基本數(shù)據(jù)包裝類(lèi)

2019-11-14 21:15:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
黑馬程序員——【java基礎(chǔ)】——String、StringBuffer和基本數(shù)據(jù)包裝類(lèi)

---------- android培訓(xùn)、java培訓(xùn)、期待與您交流! ----------

類(lèi)String------------------------------------------------

一、概述

  (一)定義:String是字符串的類(lèi)類(lèi)型,用于描述字符串事物。

  (二)特點(diǎn):字符串對(duì)象一旦被初始化,就不會(huì)被改變。String類(lèi)不能有子類(lèi)。

  (三)寫(xiě)法

  1、Sting s= new String(“abc”) ;

  2、String s = “abc”;

  (四)細(xì)節(jié)

  String s = "abc";//創(chuàng)建一個(gè)字符串對(duì)象在常量池中。

  String s1 = new String("abc");//創(chuàng)建兩個(gè)對(duì)象一個(gè)new一個(gè)字符串對(duì)象在堆內(nèi)存中。

  System.out.PRintln(s==s1);//false

  System.out.println(s.equals(s1));

  //string類(lèi)中的equals復(fù)寫(xiě)Object中的equals建立了string類(lèi)自己的判斷字符串對(duì)象是否相同的依據(jù)。

  //其實(shí)就是比較字符串內(nèi)容。

二、字符串常用方法

  (一)獲取

   * int length() :獲取字符串的長(zhǎng)度。

   * char charAt(int index):返回指定索引index處的 char 值

   * int indexOf(int ch)://返回的是ch在字符串中第一次出現(xiàn)的位置

   * int indexOf(int ch,int fromIndex):從fromIndex指定位置開(kāi)始,獲取ch在字符串中第一次出現(xiàn)的位置。

   * int indexOf(String str)://返回指定字符串str在此字符串中第一次出現(xiàn)的位置。

   * int indexOf(String str,int fromIndex):從fromIndex指定位置開(kāi)始,獲取指定字符串str在字符串中出現(xiàn)的位置。

   * int lastIndexOf(int ch)://返回指定字符在此字符串中最后一次出現(xiàn)處的索引,即反向索引

  (二)判斷

   * Boolean contains(str):判斷字符串中是否包含str子串。

    特殊之處:indexOf(str)可以索引str第一次出現(xiàn)的位置,如果返回-1表示該str不在字符串中存在。所以,也可以用于對(duì)指定判斷是否包含。

    例如:if(str.indexOf(“aa”)!=-1)而且該方法既可以判斷,又可以獲取出現(xiàn)的位置。如果只為判斷,用contains。

   * boolean isEmpty():判斷字符串是否為空(JDK1.6開(kāi)始支持)。

   * boolean startsWith(String prefix):字符串是否是以指定內(nèi)容開(kāi)頭。

   * boolean endsWith(String suffix):字符串是否是以指定內(nèi)容結(jié)尾。

   * boolean equals(str):判斷字符串的內(nèi)容是否相同,它覆寫(xiě)了Object類(lèi)的方法。

   * boolean equalsIgnoreCase():忽略大小寫(xiě)的比較。

  (三)轉(zhuǎn)換

   * char[] toCharArray():將字符串轉(zhuǎn)成字符數(shù)組。

   * 將字符數(shù)組轉(zhuǎn)成字符串:

    -構(gòu)造函數(shù):String (char[]);

   String(char[],offset,count);//將字符數(shù)組中的一部分轉(zhuǎn)成字符串。

    -靜態(tài)方法:

   static String copyValueOf(char[]);

   staticString copyValueOf(char[] data,int offset ,int count );

     static String valueOf(char[]);

   * 將字節(jié)數(shù)組轉(zhuǎn)成字符串:

     String (byte[]);

     String(byte[], offset,count);//將字節(jié)數(shù)組中的一部分轉(zhuǎn)成字符串。count表示個(gè)數(shù)。

   * byte[] getBytes():將字符串轉(zhuǎn)成字節(jié)數(shù)組。

   * 將“基本數(shù)據(jù)類(lèi)型”——“字符串”:

     static String valueOf(int);

     static String valueOf(double);

     特殊:字符串和字節(jié)數(shù)組在轉(zhuǎn)換過(guò)程中,是可以指定編碼表的。

   * String concat(String str):將字符串進(jìn)行連接。

  (四)替換

   * String replace(oldchar, newchar):生成一個(gè)新的字符串,如果要替換的字符不存在,返回原字符串。

   * String replace(CharSequence target, CharSequence replcement):例如str.replace(“abc”, “QQq”);

  (五)切割

   * String[] split(regex):按照正則表達(dá)式regex的要求對(duì)字符串進(jìn)行切割,返回字符串?dāng)?shù)組。

  (六)子串(獲取字符串中的一部分)

   * String subString(int beginIndex):從beginIndex角標(biāo)開(kāi)始截取到字符串最后,獲取截取的子串。

   * String substring(int beginIndex, int endIndex):從beginIndex角標(biāo)字符串到endIndex-1角標(biāo)的字符串。

  (七)轉(zhuǎn)換,去除空格,比較

   * 將字符串轉(zhuǎn)成大寫(xiě)或小寫(xiě):StringtoUpperCase()、String toLowerCase()

   * 將字符串兩端的多個(gè)空格去除:String trim()

   * 對(duì)兩個(gè)字符串進(jìn)行自然順序的比較:int compareTo(String str);

類(lèi) StringBuffer------------------------------------------------

一、概述

  StringBuffer是一個(gè)類(lèi)似于 String 的字符串緩沖區(qū),可以看做一個(gè)容器。StringBuffer可以對(duì)字符串內(nèi)容進(jìn)行增、刪、改、查等操作。

二、特點(diǎn)

  1、長(zhǎng)度是可變化的。(數(shù)組是固定的)

  2、可以直接操作多種數(shù)據(jù)類(lèi)型。(數(shù)組只能操作一個(gè))

  3、最終會(huì)通過(guò)toString()方法變成字符串。

三、創(chuàng)建對(duì)象

  StringBuffer sb = new StringBuffer();//初始容量為16個(gè)字符。

四、常見(jiàn)操作

  (一)存儲(chǔ)

    StringBuffer append():將指定數(shù)據(jù)作為參數(shù)添加到已有數(shù)據(jù)的結(jié)尾處。

    StringBuffer insert(int offset ,數(shù)據(jù)):可以將數(shù)據(jù)插入到指定offset位置。

  (二)刪除

    StringBuffere delete(start,end):刪除緩沖區(qū)中的數(shù)據(jù),包含start,不包含end。

    StringBuffer deleteCharAt(index):刪除指定位置的字符。

    清空緩沖區(qū):對(duì)象.delete(0,對(duì)象.length());

  (三)獲取

    char charAt(int index);

    int indexOf(String str);

    int lastIndexOf(String str);

    int length();

    String substring(int start, int end);

  (四)修改

    StringBuffer replace(int start, int end, String str);

    void setCharAt(int index, char ch);

  (五)反轉(zhuǎn)

    StringBuffer reverse();

  (六)將緩沖區(qū)中指定數(shù)據(jù)存儲(chǔ)到指定字符數(shù)組中

    void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

五、JDK1.5新特點(diǎn)

  1、在JDK1.5版本之后,為了提高緩沖區(qū)效率,出現(xiàn)了StringBuilder。其中,StringBuffer是線(xiàn)程同步的、用于多線(xiàn)程。StringBuilder是線(xiàn)程不同步的,應(yīng)用于單線(xiàn)程,它的出現(xiàn)提高效率。

  2、Java升級(jí)的理由:(1)提高效率。(2)簡(jiǎn)化書(shū)寫(xiě)。(3)提高安全性。

基本數(shù)據(jù)類(lèi)型包裝類(lèi) -------------------------------------

  將基本數(shù)據(jù)類(lèi)型封裝成對(duì)象的好處,在于可以在對(duì)象中定義更多的功能方法操作該數(shù)據(jù)。基本數(shù)據(jù)類(lèi)型對(duì)象包裝類(lèi)的最常見(jiàn)作用,就是用于基本數(shù)據(jù)類(lèi)型和字符串類(lèi)型之間做轉(zhuǎn)換。

一、基本數(shù)據(jù)類(lèi)型——包裝類(lèi)

基本數(shù)據(jù)類(lèi)型

對(duì)應(yīng)包裝類(lèi)

byte

Byte

short

Short

int

Integer

long

Long

boolean

Boolean

float

Float

double

Double

char

Character

二、“基本數(shù)據(jù)類(lèi)型”——“字符串”

  1、基本數(shù)據(jù)類(lèi)型+" ";

  2、基本數(shù)據(jù)類(lèi)型.toString(基本數(shù)據(jù)類(lèi)型值)。如:Integer.toString(25);//將25整數(shù)變成"25"。

三、“字符串”——“基本數(shù)據(jù)類(lèi)型”

  1、規(guī)律格式:基本數(shù)據(jù)類(lèi)型包裝類(lèi).parse基本類(lèi)型(string);

  2、代碼格式:xxx a = Xxx.parseXxx(string);//必須傳入對(duì)應(yīng)類(lèi)型的字符串。

  3、示例:

    int a = Integer.parseInt("123");//靜態(tài)轉(zhuǎn)換方法

    Integer i = new Integer("123");

    int num = i.intValue();//跟上面的靜態(tài)方式的結(jié)果一樣,但這種屬于對(duì)象調(diào)用方式。

    Boolean b = Boolean.parseBoolean("true");

    注意:在使用時(shí),Integer x = null;上面的代碼就會(huì)出現(xiàn)NullPointerException,要判斷。

四、“十進(jìn)制”——“其他進(jìn)制”

  toBinaryString();

  toHexString();

  toOctalString();

五、其他進(jìn)制轉(zhuǎn)成十進(jìn)制

  parseInt(String , radix);

  如:int a= Integer.parseInt("110", 2);

六、JDK1.5版本以后的新特性

  Integer x=4;自動(dòng)裝箱。等效于Integer x=new Integer(4);

  x = x+2;//進(jìn)行自動(dòng)拆箱。變成了int類(lèi)型。和2進(jìn)行相加。x的拆箱等價(jià)于x.intValue()。

七、補(bǔ)充

  1、若:Integer m = 128;Integer n = 128;則:x==y,結(jié)果是false。

  2、若:Integer a = 127;Integer b = 127;則:a==b,結(jié)果是true。因?yàn)閍和b指向了同一個(gè)Integer對(duì)象。當(dāng)數(shù)值在byte范圍內(nèi),對(duì)于新特性,如果該值已存在,則不會(huì)再開(kāi)辟新的空間。

八、練習(xí)

  /* 對(duì)一個(gè)字符串中的數(shù)值進(jìn)行從小到大的排序。"20 78 9 -7 88 36 29"

  思路:

  1.排序,熟悉

  2.將字符串轉(zhuǎn)為子串,獲取字符串中需要排序的數(shù)值。發(fā)現(xiàn)原字符串是用空格分隔的,因此可以用字符串對(duì)象的切割方法將大字符串轉(zhuǎn)化為小串。

  3,如何將獲取的數(shù)值字符串,轉(zhuǎn)換為int類(lèi)型。字符串-->基本數(shù)據(jù)類(lèi)型,可以使用包裝類(lèi)。 */

 1 import java.util.Arrays; 2 class wrapperClassDemo{ 3     private static final String SPACE_SEPARATOR = " ";     4     public static void main(String[] args) { 5         String numStr = "20 78 9 -7 88 36 29"; 6         System.out.println(numStr);         7         numStr = sortStringNumber(numStr); 8         System.out.println(numStr); 9     }10   // 字符串排序函數(shù)11     public static String sortStringNumber(String numStr){12         //將數(shù)字字符串轉(zhuǎn)化為字符數(shù)組13         String[] str_arr = stringToArray(numStr);14 15         //將字符數(shù)組轉(zhuǎn)化為int數(shù)組16         int[] num_arr = toIntArray(str_arr);17 18         //將int數(shù)組進(jìn)行從小到大的排序19         mySortArray(num_arr);20 21         //將int數(shù)組轉(zhuǎn)化為字符串22         String temp = numToString(num_arr);23 24         return temp;25     }26   // 定義字符串轉(zhuǎn)變成字符串?dāng)?shù)組函數(shù)27     public static String[] stringToArray(String numStr){28         String[] str_arr = numStr.split(SPACE_SEPARATOR);29         return str_arr;30     }31   // 定義字符串?dāng)?shù)組轉(zhuǎn)換為int[]數(shù)組32     public static int[] toIntArray(String[] str_arr){33         int[] int_arr =new int[str_arr.length];34         for (int i = 0;i<str_arr.length ;i++ ){35             int_arr[i] = Integer.parseInt(str_arr[i]);36         }37         return int_arr;38     }39   // 對(duì)int[]進(jìn)行排序40     public static void mySortArray(int[] num_arr){41         Arrays.sort(num_arr);42     }43   // 定義int[]數(shù)組轉(zhuǎn)為String函數(shù)44     public static String numToString(int[] num_arr){45 //        StringBuffer sb = new StringBuffer();//多線(xiàn)程,用StringBuffer46         StringBuilder sb = new StringBuilder();//單線(xiàn)程,用StringBuilder47         for (int x= 0;x<num_arr.length ;x++ ){48             if (x!=num_arr.length-1)49                 sb.append(num_arr[x]+SPACE_SEPARATOR);50             else51                 sb.append(num_arr[x]);52         }53         return sb.toString();54     }55 }

---------- android培訓(xùn)、java培訓(xùn)、期待與您交流! ----------


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: fc2国产成人免费视频 | 视频一区国产 | 91精品国产91久久久久久蜜臀 | 国产精品亚洲综合一区二区三区 | 欧美a久久 | 国产成人综合在线观看 | 毛片午夜 | 亚欧在线免费观看 | 国产精品热 | 九九热免费视频在线观看 | 国产乱淫a∨片免费观看 | 精品小视频 | 欧美精品久久久久久久久久 | 久久久久久久久久亚洲精品 | 欧美三级欧美成人高清www | 精品国产99久久久久久宅男i | h色视频在线观看 | 久草在线小说 | 国产美女一区二区在线观看 | 羞羞视频免费网站男男 | 免费国产羞羞网站视频 | 欧美a在线观看 | 天堂在线资源av | 曰本三级日本三级日本三级 | 视频一区二区三区中文字幕 | 久久久久久久久久久影视 | 999精品国产| 爱逼av| 国产成人自拍小视频 | av在线免费观看网 | 亚洲一区二区在线免费 | 啪啪毛片 | 免费一级在线观看 | 国产成人强伦免费视频网站 | 国产1区2区3区中文字幕 | 久久17| 欧美一级免费在线观看 | 国产一区二区精品在线观看 | 操操插插| 蜜桃视频网站www | 日韩黄色免费在线观看 |