最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

String字符串的使用

2022-06-21 19:03 作者:虛云幻仙  | 我要投稿

/**
* String字符串的使用
*/

public class TestString {
? ?public static void main(String[] args) {

? ? ? ?String s1 = "s1";
? ? ? ?String s2 = new String("s2");
? ? ? ?//"s1"默認(rèn)省略了new String()
? ? ? ?String s3 = "";
? ? ? ?//空字符串也是一個(gè)字符串,不是空的
? ? ? ?String s0 = null;
? ? ? ?// =null才是空的 這里和對象的引用一樣 String引用變量s0指向null空 沒有指向?qū)嶋H地址 沒有生成新對象

? ? ? ?System.out.println(s1.length());
? ? ? ?//打印字符串s1的長度:2
? ? ? ?System.out.println(s3.length());
? ? ? ?//打印字符串s3的長度:0
? ? ? ?/*
? ? ? ?System.out.println(s0.length())會(huì)報(bào)錯(cuò) NullPointerException 空指針異常
? ? ? ?s0指向null 沒有實(shí)際對象,所以沒法通過對象調(diào)用方法
? ? ? ? */


? ? ? ?/*打開String源碼

? ? ? ?package java.lang; //String類屬于java.lang包 默認(rèn)載入無需import導(dǎo)入

? ? ? ?public final class String ?//public完全公開 final class不可繼承

? ? ? ?implements java.io.Serializable, Comparable<String>, CharSequence { ?//implements實(shí)現(xiàn)三個(gè)接口,用逗號(hào)隔開

? ? ? ?private final char value[]; ?//private私有屬性只能類內(nèi)調(diào)用 final char只可以初始化一次之后不能更改 value[]數(shù)組

? ? ? ?public String() {this.value = "".value;} //無參構(gòu)造器 即 new String()時(shí)賦值空字符串""的value

? ? ? ?"s1"屬于String類對象
? ? ? ?String s1 = "s1";是把"s1"對象的地址賦值給s1
? ? ? ?String s2 = new String("s2"); 是先new一個(gè)String對象 將"s2"的value和hash賦值給String對象 再將對象的地址賦值給s2

? ? ? ?public int length() {return value.length;}//返回this.value.length數(shù)組的長度

? ?public boolean equals(Object anObject) {
? ?//String對Object的equals方法重寫 這里形參是Object類不是String類
? ? ? ?if (this == anObject) {
? ? ? ?//比較對象地址是不是同一個(gè)對象
? ? ? ? ? ?return true;
? ? ? ?}
? ? ? ?if (anObject instanceof String) {
? ? ? ?//判斷要比較的anObject是否屬于String類 由于String對equals重寫 所以調(diào)用重寫的equals的對象this屬于String類 如果要比較的對象不屬于String類意味著比較雙方不同類

? ? ? ? ? ?String anotherString = (String)anObject;
? ? ? ? ? ?//在確認(rèn)比較對象屬于String類后 由于形參編譯類型是Object 這里要強(qiáng)轉(zhuǎn)為String 才能使用String的內(nèi)容

? ? ? ? ? ?int n = value.length;
? ? ? ? ? ?//計(jì)算this.value數(shù)組的長度
? ? ? ? ? ?if (n == anotherString.value.length) {
? ? ? ? ? ?//判斷兩字符串長度
? ? ? ? ? ? ? ?char v1[] = value;
? ? ? ? ? ? ? ?char v2[] = anotherString.value;
? ? ? ? ? ? ? ?int i = 0;
? ? ? ? ? ? ? ?while (n-- != 0) {
? ? ? ? ? ? ? ?//先判斷n!=0 為ture的話再n--
? ? ? ? ? ? ? ?//如果n=0 即兩個(gè)字符串都是""空字符串,跳過循環(huán)體返回ture

? ? ? ? ? ? ? ? ? ?if (v1[i] != v2[i])
? ? ? ? ? ? ? ? ? ?//從第0位開始比較字符
? ? ? ? ? ? ? ? ? ? ? ?return false;
? ? ? ? ? ? ? ? ? ?i++;
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?return true;
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?return false;
? ?}

? ? ? ?public String toString() {return this;}//源toString是返回包名.類名.對象名@地址 重寫后返回字符串內(nèi)容

? ? ? ? */

? ?}
}

String字符串的使用的評(píng)論 (共 條)

分享到微博請遵守國家法律
青川县| 加查县| 乃东县| 巫山县| 丹寨县| 大洼县| 三原县| 通州区| 澄迈县| 屏边| 石柱| 阿城市| 隆德县| 平湖市| 南丹县| 若尔盖县| 汉中市| 铜陵市| 乐陵市| 广德县| 衢州市| 贡嘎县| 广南县| 盐边县| 麻城市| 水富县| 闽清县| 和龙市| 营山县| 靖远县| 丰台区| 庐江县| 凤阳县| 南阳市| 方正县| 岫岩| 丰城市| 苍溪县| 新蔡县| 惠安县| 长春市|