国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

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

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

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

類String------------------------------------------------

一、概述

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

  (二)特點:字符串對象一旦被初始化,就不會被改變。String類不能有子類。

  (三)寫法

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

  2、String s = “abc”;

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

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

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

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

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

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

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

二、字符串常用方法

  (一)獲取

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

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

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

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

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

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

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

  (二)判斷

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

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

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

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

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

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

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

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

  (三)轉(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表示個數(shù)。

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

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

     static String valueOf(int);

     static String valueOf(double);

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

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

  (四)替換

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

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

  (五)切割

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

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

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

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

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

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

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

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

類 StringBuffer------------------------------------------------

一、概述

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

二、特點

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

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

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

三、創(chuàng)建對象

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

四、常見操作

  (一)存儲

    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ū):對象.delete(0,對象.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ù)存儲到指定字符數(shù)組中

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

五、JDK1.5新特點

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

  2、Java升級的理由:(1)提高效率。(2)簡化書寫。(3)提高安全性。

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

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

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

基本數(shù)據(jù)類型

對應(yīng)包裝類

byte

Byte

short

Short

int

Integer

long

Long

boolean

Boolean

float

Float

double

Double

char

Character

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

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

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

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

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

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

  3、示例:

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

    Integer i = new Integer("123");

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

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

    注意:在使用時,Integer x = null;上面的代碼就會出現(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;自動裝箱。等效于Integer x=new Integer(4);

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

七、補充

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

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

八、練習(xí)

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

  思路:

  1.排序,熟悉

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

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

 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   // 對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();//多線程,用StringBuffer46         StringBuilder sb = new StringBuilder();//單線程,用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ā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤山县| 磐石市| 日喀则市| 红原县| 深水埗区| 福鼎市| 北辰区| 北流市| 会宁县| 米林县| 明溪县| 惠东县| 游戏| 临高县| 延长县| 永春县| 万州区| 长治县| 个旧市| 丰镇市| 双峰县| 曲水县| 萝北县| 龙井市| 昌宁县| 旅游| 陕西省| 宕昌县| 淳化县| 武隆县| 盘山县| 碌曲县| 精河县| 息烽县| 三原县| 密云县| 米泉市| 延长县| 茂名市| 阳山县| 芦山县|