JavaでString、StringBuilder、StringBuffer
7654 ワード
JAvaでクラスとオブジェクトを作成する方法
Objectクラス:
Objectクラスはすべてのクラスの究極の親です.どのクラスもObjectクラスを継承します.
Objectクラスでよく使われる方法: toString(); オブジェクトの文字列表示を返します.オブジェクトを記述する文字列を返します.TOStringを書き換えると、オブジェクトを直接出力すると、必要なフォーマットデータが出力されます.2.equals(Object obj)は、2つのオブジェクトのメモリアドレスを比較し、2つのオブジェクトが同じオブジェクトであるかどうかを判断するために使用されます.
注意:===は、参照データ型を比較する場合に使用されます.比較するのは2つのオブジェクトのメモリアドレスです.equalsメソッドはデフォルトでも2つのオブジェクトのメモリアドレスを比較しますが、StringクラスではObjectのequalsメソッドが書き換えられています.メソッドの内部では文字列をワード配列に変換し、各文字が同じかどうかを比較し、異なるとflaseに戻ります.同じようにtrueを返します.したがって、2つの文字列の比較ではequalsメソッドが推奨されます.
3.hashCode()は、そのオブジェクトのハッシュコード値を返します(ハッシュコードはオブジェクトのメモリアドレスと理解できます).
JAvaの仕様:一般的にクラスのequalsメソッドを書き換え、hashCodeメソッドを書き換えます.
JAvaはオープンソース....ソースコード公開...
ソースコードの表示方法:
public class Person { String name; String address; int id;
}
////personオブジェクトpublic static void main(String[]args){
//toString()メソッドを書き換えた後、印刷結果:name=seyaddress==北京id==11111////toString()メソッドを書き換えず、印刷結果は:Person@15db9742 (NSString *)description { return [NSString stringWithFormat:@"name==%@, address==%@", self.name, self.address]; }
public static void main(String[] args) { String str1 = "string"; String str2 = "string"; String str3 = new String("string"); String str4 = new String("string");
////印刷結果/*str 1はstr 3に等しいか?true str 2はstr 3に等しいか?false str 3はstr 4に等しいか?false str 1はstr 3に等しいか?true*/
//trim()関数を自分で実装し、文字列の先頭と末尾のスペースpublic static String customTrim(String str){
//public static void main(String[]args){
//印刷結果頭尾のスペースが取れました:今日はいい天気ですね
public static void main(String[] args) {
//反転文字列public static String InvertString(String string){
//統計サブストリングが1つのストリングに現れる回数public static int getCount(String string,String subStr){
StringBuffer sBuffer = new StringBuffer(); sBuffer.append("11");
1. , 。
2.sun , , 。
Objectクラス:
Objectクラスはすべてのクラスの究極の親です.どのクラスもObjectクラスを継承します.
Objectクラスでよく使われる方法:
注意:===は、参照データ型を比較する場合に使用されます.比較するのは2つのオブジェクトのメモリアドレスです.equalsメソッドはデフォルトでも2つのオブジェクトのメモリアドレスを比較しますが、StringクラスではObjectのequalsメソッドが書き換えられています.メソッドの内部では文字列をワード配列に変換し、各文字が同じかどうかを比較し、異なるとflaseに戻ります.同じようにtrueを返します.したがって、2つの文字列の比較ではequalsメソッドが推奨されます.
3.hashCode()は、そのオブジェクトのハッシュコード値を返します(ハッシュコードはオブジェクトのメモリアドレスと理解できます).
JAvaの仕様:一般的にクラスのequalsメソッドを書き換え、hashCodeメソッドを書き換えます.
JAvaはオープンソース....ソースコード公開...
ソースコードの表示方法:
1. crt(mac Command) ,
2. fn + F3
```
Java toString
>Object toString() , 。 String , 。 toString() , 。
toString()
public class Person { String name; String address; int id;
public Person(String name, String address, int id) {
this.name = name;
this.address = address;
this.id = id;
}
/// toString()
@Override
public String toString() {
return "name ==" + name + "address ==" + address + "id == " + id;
}
}
////personオブジェクトpublic static void main(String[]args){
Person person = new Person("sey", " ", 11111);
System.out.println(person);
}
//toString()メソッドを書き換えた後、印刷結果:name=seyaddress==北京id==11111////toString()メソッドを書き換えず、印刷結果は:Person@15db9742
Java toString() Objective-C description , oc description , ,
- ###String :
>String , , String String ,
:
1.```String str2 = "string";```
2.```String str3 = new String("string");```
public static void main(String[] args) { String str1 = "string"; String str2 = "string"; String str3 = new String("string"); String str4 = new String("string");
System.out.println("str1 str3?" + (str1 == str2));
System.out.println("str2 str3?" + (str2 == str3));
System.out.println("str3 str4?" + (str3 == str4));
System.out.println("str1 str3?" + (str1.equals(str2)));
}
////印刷結果/*str 1はstr 3に等しいか?true str 2はstr 3に等しいか?false str 3はstr 4に等しいか?false str 1はstr 3に等しいか?true*/
( Java ):
:```String str1 = "string";``` ,jvm ``` ``` ``` ``` , , , ``` ``` , ``` ``` , 。
: ```String str3 = new String("string");``` ,jvm ``` ``` , , ``` ``` , , ``` ``` , ``` ``` ``` ``, ``` ```
1:
```String str = new String("string");```
: 2 , ``` ``` , 1 , 2 。
2:
```String str = ""; str = null ```
```str.isEmpty()``` true flase
: ```java.lang.NullPointerException```
- String trim() --
//trim()関数を自分で実装し、文字列の先頭と末尾のスペースpublic static String customTrim(String str){
//
char[] arr = str.toCharArray();
// , ,
int startIndex = 0;
int endIndex = arr.length - 1;
for (int i = 0; i < arr.length; i++) {
if (arr[startIndex] == ' ') {
startIndex++;
} else {
break;
}
if (arr[endIndex] == ' ') {
endIndex--;
} else {
break;
}
}
//
return str.substring(startIndex, endIndex + 1);
}
//public static void main(String[]args){
String string = " ";
string = customTrim(string);
System.out.println(string);
}
//印刷結果頭尾のスペースが取れました:今日はいい天気ですね
//
public static String getFileName(String path) {
// \ , : \ , \ , \\
int index = path.lastIndexOf("/");
//
return path.substring(index + 1);
}
public static void main(String[] args) {
String path = "/Users/mofeini/Desktop/subcate.plist";
String fileName = getFileName(path);
System.out.println(fileName);
}
//反転文字列public static String InvertString(String string){
// ,
char[] arr = string.toCharArray();
for (int startIndex = 0, endIndex = arr.length - 1; startIndex
//統計サブストリングが1つのストリングに現れる回数public static int getCount(String string,String subStr){
int count= 0; //
int fromIndex = 0; // , , fromIndex+=
// , -1
while ((fromIndex = string.indexOf(subStr, fromIndex)) != -1) {
count++;
fromIndex += subStr.length();
}
return count;
}
String : , 。
, (StringBuffer)
- ###StringBuffer 。
StringBuffer , 16, , 1 +2
StringBuffer append()
StringBuffer sBuffer = new StringBuffer(); sBuffer.append("11");
StringBuffer :
String
append(boolean b)
insert(int offset, boolean b) , 。
delete(int start, int end) 。
deleteCharAt(int index) 。
replace(int start, int end, String str) 。
reverse() 。 abc--->cba
setCharAt(int index, char ch) 。
substring(int start, int end) 。
ensureCapacity(int minimumCapacity) StringBuffer 。
indexOf(String str, int fromIndex) , 。
lastIndexOf(String str)
capacity() 。
length()
charAt(int index)
toString() 。
StringBuffer StringBuilder :
:
1. 。
2. 。
:
1. StringBuffer , ,StringBuilder , 。
2. StringBuffer jdk1.0 ,StringBuilder jdk1.5 。
StringBuilder StringBuffer , StringBuilder , , , 。
,StringBuilder>StringBuffer>String
final String StringBuffer
> , final , , , 。
, String , string , , ;
StringBuffer , append , StringBuffer , append , 。