APIのStringとStringBufferの役割と異なる点

5104 ワード

Javaでは、APIはアプリケーションプログラミングインターフェースであり、JDKで提供される様々な機能のJavaクラスであり、アプリケーションと開発者がソフトウェアまたはハードウェアに基づいてインスタンスのセットにアクセスする能力を提供するために予め定められた関数であり、ソースコードにアクセスしたり、内部の作業メカニズムの詳細を理解したりする必要はありません.通常、StringとStringBufferの2つのクラスを定義文字列をカプセル化し、javaに存在する一連の操作文字列を提供する.langパッケージに入っているので、ガイドパッケージを必要とせずにそのまま使えます.Stringは単純なタイプではなく、文字シーケンスを表すクラスです.値が割り当てられると、指定された文字オブジェクトを変更することはできません.新しい文字オブジェクトにのみ適用されます.次にStringクラスの一般的な操作を示します.(1)使用する場合、文字列の長さ、位置を指す文字など、いくつかの文字列の基本的な操作が必要になることが多い.もちろん対応策もあります.
int indexOf(int ch)                             
int lastIndexOf(int ch)                          
int indexOf(String str)                           
int lastIndexOf(String str)                             
int length()                                                                         

寸法の色に注意しなければならないのは文字で、1つはサブ文字で、それらの結果は完全に異なっていて、同じと思わないでください.例:
public class ZiFu {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
    String s = "abcabdefgchiabcj";
    System.out.println("       :" +s.length());
    System.out.println("  c        :" +s.indexOf("c"));
    System.out.println("  c         :" +s.lastIndexOf("c"));
    System.out.println("            :" +s.indexOf("ab"));
    System.out.println("             :" +s.lastIndexOf("ab"));
	}
}

従って、Stringクラスが提供する方法は、文字列の長さを容易に取得し、文字列の位置を取得することができる.(2)プログラム開発では,文字列を変換操作したり,文字列を配列に変換したり,文字を大文字小文字に変換したりすることがしばしば必要である.
String toLowerCase()                 String            
String toUpperCase()                 String            
static String valueOf(int i)     Int          
char[] toCharArray()                   

このうちvalueOf()メソッドには重荷の形式が多く,float,double,charなどの他の基本タイプのデータはこのメソッドでString文字列タイプに変換でき,例は一つ一つ挙げられない.                                                                                                                                                          (3)ユーザがデータを入力する際にエラーやスペースがしばしば発生する場合,Stringクラスの文字列を用いてスペースを置換・除去する.
String replace(CharSequence oldstr,CharSequenca nawstr)                ,    newstr            oldstr   。
String trim()                 ,             。

trim()メソッドでは両端のスペースしか除去できず、中間のスペースは除去できません.中間のスペースを除去するにはreplace()メソッドを使用します.したがってreplace()メソッドは文字列の置換だけでなく、中間スペースの役割も除去できます.(4)文字列を操作する際には,しばしばいくつかの判断と,いくつかの文字列の切り取りと分割が行われる.    
char charAt(int index)                  index      ,  ,index      0(      -1)
boolean endsWith(String suffix)                      
boolean equals(Object anObject)                     
boolean isEmpty()                            0 ,   true
boolean startsWith(String prefix)                    
boolean contains(CharSequennce cs)                  
String[]split(String regex)              regex                 
String substring(int beginIndex)             ,       beginIndex                

これらの例は一つ一つ列挙しない.最後にStringBufferは、オブジェクト参照転送オブジェクトの特徴を持つ文字列オブジェクトです.Stringとの最大の違いは、StringBufferの内容と長さが変更可能であり、文字コンテナのように、文字を追加または削除した場合、新しいStringBufferオブジェクトは生成されません.文字の追加と削除には、次の方法があります.
StringBuffer append(char c)                                StringBuffer   
StringBuffer insert(int offset,String str)                  Offset       str
StringBuffer deleteCharAt(int index)                              
StringBuffer deleteCharAt(int strat,int end)            StringBuffer                
StringBuffer replace(int strat,int end,String s)      StringBuffer                
void setCharAT(int index,char ch)                           index      
String toString()                                       StringBuffer        
StringBuffer reverse()                                            

StringクラスとStringBufferクラスは似たようなところがありますが、私たち初心者には分かりやすいですが、いろいろなところが混同されやすいです.1,stringクラスは文字列を表す定数であり,いったん確立されるとその内容と長さは変更できない.StringBufferクラスは文字コンテナを表し、その内容と長さはランダムに変更できます.文字列を操作する場合、文字列がデータクラスにのみ使用される場合はStringクラスを使用します.ただし、文字列内の文字を削除する必要がある場合は、StringBufferクラスを使用できます.2,StringクラスはObjectクラスのequals()メソッドを上書きし,StringBufferクラスはObjectクラスのequals()メソッドを上書きしない.                                        
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println("s1.equals(s2));     //     true
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println("sb1.equals(sb2));    //     false
、Stringクラスオブジェクトはオペレータ"+"で行うことができ、StringBufferクラスオブジェクト間ではできません.
String s1 = "a";
String s2 = "b";
String s3 = s1 + s2;
System.out.println(s3);                 //   “ab”
StringBuffer sb1 = new StringBuffer("a");
StringBuffer sb2 = new StringBuffer("b");
StringBuffer sb3 = sb1 + sb2;           //