JAVA中的String和StringBuffer

來源:互聯網
上載者:User

Java是一種真正的物件導向的語言,即使是開發簡單的程式,也必須設計對象。Java自身也為我們提供了許多已設計好的類,要想靈活使用Java進行編程,熟悉Java的這些主要類將是必不可少的前提條件之一。

1     String類

 String是串的意思,這個類是字串常量的類。Java中的字串和C語言中的字串是有區別的。

在C語言中,並沒有真正意義上的字串,C語言中的字串就是字元數組,在Java中,字串常量是一個String類,它和字元數組是不同的

1.1 String類的建構函式:

(1)public String() 建立一個空的字串常量。

如: String test=new String();          或: String test;             test=new String();

(2)public String(String value )用一個已存在的字串常量作參數建立一個新的字串常量

另外Java會為每個用雙引號"......"括起來的字串常量建立一個String類的對象。 如: String k="Hi."; Java會為"Hi."建立一個String類的對象,然後把這個對象賦值給k。等同於: String temp=new String("Hi."); String k=temp;

(3)public String( char value[] )用一個字元數組作為參數來建立一個新的字串常量。

 char z[]={'h','e','l','l','o'}; String test=new String(z); 註:此時test中的內容為"hello"

(4)public String( char value[], int offset, int count ) 用字元數組value,從第offset個字元起取count個字元來建立一個String類的對象

char z[]={'h','e','l','l','o'}; String test=new String(z,1,3); 如果 起始點offset 或 截取數量count 越界,將會產生異常 StringIndexOutOfBoundsException

(5)public String( StringBuffer buffer ) 用一個StringBuffer類的對象作為參數來建立一個新的字串常量。

String類是字串常量,而StringBuffer類是字串變數,是不同的

1.2  String類的方法有:

 (1)public char charAt( int index ) 擷取字串常量中的一個字元。參數index指定從字串中返回第幾個字元, String s="hello"; char k=s.charAt(0); (註:此時k的值為'h')

(2)public int compareTo( String anotherString ) 比較字串常量的大小,參數anotherString為另一個字串常量。若兩個字串常量一樣,傳回值為0。若當前字串常量大,則傳回值大於0。若另一個字串常量大,則傳回值小於0。用法如: String s1="abc"; String s2="abd"; int result=s2.compareTo(s1);(註:result的值大於0,因為d在ascII碼中排在c的後面,則s2>s1)

(3)public String concat( String str ) 這個方法將把參數字串常量str接在當前字串常量的後面,產生一個新的字串常量,並返回。 String s1="How do "; String s2="you do?"; String ss=s1.concat(s2); (註:ss的值為"How do you do?")

(4)public boolean startsWith( String prefix ) 判斷當前字串常量是不是以參數prefix字串常量開頭的。是,返回true。否,返回false。 String s1="abcdefg"; String s2="bc"; boolean result=s1.startsWith(s2); (註:result的值為false)

(5)public boolean startsWith ( String prefix, int toffset ) 這個重載方法新增的參數toffset指定 進行尋找的起始點。

 (6)public boolean endsWith( String suffix ) 判斷當前字串常量是不是以參數suffix字串常量結尾的。是,返回true。否,返回false。 String s1="abcdefg"; String s2="fg"; boolean result=s1.endsWith(s2); (註:result的值為true)

(7)public void getChars ( int srcBegin, int srcEnd, char dst[], int dstBegin ) 這個方法用來從字串常量中截取一段字串並轉換為字元數組。參數srcBegin為截取的起始點,srcEnd為截取的結束點,dst為目標字元數組,dstBegin指定將截取的字串放在字元數組的什麼位置。實際上,srcEnd為截取的結束點加1,srcEnd-srcBegin為要截取的字元數,用法如: String s="abcdefg"; char z[]=new char[10]; s.getChars(2,4,z,0); (註:z[0]的值為'c',z[1]的值為'd', 截取了兩個字元 4-2=2)

(8)public int indexOf( int ch ) 傳回值為字元ch在字串常量中從左至右第一次出現的位置。若字串常量中沒有該字元,則返回-1。用法如: String s="abcdefg"; int r1=s.indexOf('c'); int r2=s.indexOf('x');(註:r1的值為2,r2的值為-1)

 (9)public int indexOf ( int ch, int fromIndex ) 對上一個方法的重載,新增的參數fromIndex為尋找的起始點。用法如: String s="abcdaefg"; int r=s.indexOf('a',1) (註:r的值為4)

(10)public int indexOf( String str ) 返回字串常量str在當前字串常量中從左至右第一次出現的位置,若當前字串常量中不包含字串常量str,則返回-1。用法如: String s="abcdefg"; int r1=s.indexOf("cd"); int r2=s.indexOf("ca");(註:r1的值為2,r2的值為-1)

 (11)public int indexOf ( String str, int fromIndex ) 這個重載方法新增的參數fromIndex為尋找的起始點。以下四個方法與上面的四個方法用法類似,只是在字串常量中從右向左進行尋找。

public int lastIndexOf( int ch )

public int lastIndexOf( int ch, int fromIndex )

public int lastIndexOf( String str )

public int lastIndexOf( String str, int fromIndex )

 public int length() 這個方法返回字串常量的長度,這是最常用的一個方法。用法如: String s="abc";int result=s.length();(註:result的值為3)

public char[] toCharArray()將當前字串常量轉換為字元數組,並返回。用法如: String s="Who are you?" char z[]=s.toCharArray();

public static String valueOf( boolean b )

public static String valueOf( char c )

public static String valueOf( int i )

 public static String valueOf( long l )

 public static String valueOf( float f )

public static String valueOf( double d ) 以上6個方法可將boolean、char、int、long、float和double 6種類型的變數轉換為String類的對象。

用法如: String r1=String.valueOf(true);(註:r1的值為"true")

 String r2=String.valueOf('c');(註:r2的值為"c") float ff=3.1415926;

String r3=String.valueOf(ff); (註:r3的值為"3.1415926")

2  StringBuffer 類

String類是字串常量,是不可更改的常量。而StringBuffer是字串變數,它的對象是可以擴充和修改的。 StringBuffer類的建構函式 l public StringBuffer() 建立一個空的StringBuffer類的對象。

 public StringBuffer( int length ) 建立一個length 的StringBuffer類的對象。 注意:如果參數length小於0,將觸發NegativeArraySizeException異常。

public StringBuffer( String str ) 用一個已存在的字串常量建立StringBuffer類的對象。

2.1   StringBuffer類的方法有:

 (1)public String toString() 轉換為String類對象並返回。由於大多數類中關於顯示的方法的參數多為String類的對象,所以經常要將StringBuffer類的對象轉換為String類的對象,再將它的值顯示出來。用法如: StringBuffer sb=new StringBuffer("How are you?"); Label l1=new Label(sb.toString()); (註:聲明一個標籤對象l1,l1上的內容為How are you?)

(2)

 public StringBuffer append( boolean b )

 public StringBuffer append( char c )

public StringBuffer append( int i)

public StringBuffer append( long l )

public StringBuffer append( float f )

public StringBuffer append( double d )

以上6個方法可將boolean、char、int、long、float和double 6種類型的變數追加到StringBuffer類的對象的後面。

用法如:

double d=123.4567;

StringBuffer sb=new StringBuffer();

sb.append(true);

sb.append('c').append(d).append(99);(註:sb的值為truec123.456799)

 (3)public StringBuffer append( String str ) 將字串常量str追加到StringBuffer類的對象的後面。

 (4)public StringBuffer append( char str[] )將字元數組str追加到StringBuffer類的對象的後面。

(5)public StringBuffer append( char str[], int offset, int len )將字元數組str,從第offset個開始取len個字元,追加到StringBuffer類的對象的後面。

 (6)

public StringBuffer insert( int offset, boolean b )

 public StringBuffer insert( int offset, char c )

public StringBuffer insert( int offset, int i )

public StringBuffer insert( int offset, long l )

 public StringBuffer insert( int offset, float f )

 public StringBuffer insert( int offset, double d )

 public StringBuffer insert( int offset, String str )

public StringBuffer insert( int offset, char str[] ) 將boolean、char、int、long、float、double類型的變數、String類的對象或字元數組插入到StringBuffer類的對象中的第offset個位置。

用法如: StringBuffer sb=new StringBuffer("abfg"); sb.insert(2,"cde");(註:sb的值為abcdefg)

 (7)public int length()返回字串變數的長度,用法與String類的length方法類似。

3  Math 類

 數學類包含了許多數學函數,如sin、cos、exp、abs等。

Math類是一個工具類,它在解決與數學有關的一些問題是有著非常重要的作用。

 這個類有兩個靜態屬性:E和PI。E代表數學中的e 2.7182818,而PI代表派pi 3.1415926。

引用時,用法如:Math.E 和 Math.Pi。

這個類的方法有: abs方法用來求絕對值。

public static int abs( int a )

public static long abs( long a )

public static float abs( float a )

public static double abs( double a )

acos求反餘弦函數。

public static native double acos( double a )

asin求反正弦函數。 public static native double asin( double a )

atan求反正切函數。public static native double atan( double a )

ceil返回 最小的 大於a的整數。

public static native double ceil( double a )

cos求餘弦函數。

public static native double cos( double a )

exp求e的a次冪。public static native double exp( double a )

 floor返回 最大的 小於a的整數。public static native double floor( double a )

log返回lna。public static native double log( double a )

 pow求a的b次冪。public static native double pow( double a, double b )

sin求正弦函數。public static native double sin( double a )

sqrt求a的開平方。public static native double sqrt( double a )

tan求正切函數。 public static native double tan( double a )

public static synchronized double random() 返回0到1之間的隨機數。

使用這些方法時,用法為Math.***** (*****為方法名)。

用法如: int a=Math.abs(124); int b=Math.floor(-5.2); double s=Math.sqrt(7);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.