欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:開(kāi)發(fā)語(yǔ)言 Java——字符串

柚子快報(bào)激活碼778899分享:開(kāi)發(fā)語(yǔ)言 Java——字符串

http://yzkb.51969.com/

前言 字符串詳解

文章目錄

一、String類(lèi)1.1 創(chuàng)建字符串1.2 String的操作

二、StringBuilder類(lèi)三、StringBuffer類(lèi)四、StringJoiner類(lèi)

一、String類(lèi)

String類(lèi)位于java.lang包中,用于表示字符串的不可變對(duì)象。

1.1 創(chuàng)建字符串

我們可以使用字面量和使用new關(guān)鍵字創(chuàng)建字符串,但有一些區(qū)別:

字面量創(chuàng)建字符串:

String str1 = "Hello, World!";

String str2 = "Hello, World!";

System.out.println(str1 == str2); // 輸出: true,str1和str2指向的是同一個(gè)字符串對(duì)象

當(dāng)使用字面量創(chuàng)建字符串時(shí),Java會(huì)先檢查字符串常量池(String Pool)(在Java7之前,常量池在永久代,在7之后字符串常量池移至堆內(nèi)存),中是否已經(jīng)存在內(nèi)容相同的字符串。如果存在,則直接返回池中的引用,而不會(huì)創(chuàng)建新的對(duì)象。如果不存在,則將該字符串添加到池中。

使用new關(guān)鍵字創(chuàng)建字符串

//將字符數(shù)組轉(zhuǎn)換為字符串對(duì)象

char[] charArray = {'H', 'e', 'l', 'l', 'o'};

String str1 = new String(charArray);

//使用字節(jié)數(shù)組的部分內(nèi)容的構(gòu)造方法,根據(jù)ASCII碼找到對(duì)應(yīng)的字符

byte[] byteArray = {72, 101, 108, 108, 111};

String str = new String(byteArray);

System.out.println(str); // 輸出: Hello

//根據(jù)傳遞的字符串創(chuàng)建新的字符串對(duì)象

String str3 = new String("Hello, World!");

String str4 = new String("Hello, World!");

System.out.println(str3 == str4); // 輸出: false

在這個(gè)例子中,str3和str4是兩個(gè)不同的對(duì)象,即使它們的內(nèi)容相同,因?yàn)槊看蝞ew都會(huì)創(chuàng)建新的實(shí)例。

1.2 String的操作

基本操作: 獲取字符串長(zhǎng)度

String str1 = "Hello, World!";

int length = str1.length();//length = 13

獲取指定位置的字符

char ch = str1.charAt(0); // 'H'

獲取子字符串

String subStr = str1.substring(0, 5); // "Hello"

字符串比較: 在使用new關(guān)鍵字創(chuàng)建對(duì)象時(shí)我們發(fā)現(xiàn),直接將對(duì)象進(jìn)行比較,即使字符串內(nèi)容完全一致,返回的也是false,這是因?yàn)閟tr3和str4實(shí)際上都是對(duì)內(nèi)存中實(shí)際對(duì)象的引用,如果我們要比較字符串需要使用equals和equalsIgnoreCase方法

String str3 = new String("Hello, World!");

String str4 = new String("Hello, World!");

System.out.println(str3 == str4); // 輸出: false

使用equals()方法

boolean isEqual = str1.equals(str2);

使用equalsIgnoreCase()方法,忽略大小寫(xiě)

boolean isEqualIgnoreCase = str1.equalsIgnoreCase("hello, world!");

字符串查找: 查找子字符串的索引

int index = str1.indexOf("World"); // 7

判斷是否包含子字符串

boolean contains = str1.contains("World");

字符串轉(zhuǎn)換: 轉(zhuǎn)換為小寫(xiě)

String lowerStr = str1.toLowerCase();

轉(zhuǎn)換為大寫(xiě)

String upperStr = str1.toUpperCase();

字符串拼接: 使用+操作符

String str4 = "Hello, " + "World!";

二、StringBuilder類(lèi)

StringBuilder類(lèi)用于創(chuàng)建和操作可變字符串。它是java.lang包的一部分,專(zhuān)門(mén)用于在需要對(duì)字符串進(jìn)行頻繁修改的場(chǎng)景下提高性能。

我們知道String類(lèi)創(chuàng)建的對(duì)象是不可變對(duì)象,也就是說(shuō),如果這意味著一旦一個(gè)String對(duì)象被創(chuàng)建,它的值就不能被修改,舉例:

String str1 = "Hello";

String str2 = str1; // str2和str1引用同一個(gè)字符串對(duì)象

str1 = str1 + " World"; // 會(huì)創(chuàng)建一個(gè)新的字符串對(duì)象,但str1引用的對(duì)象不會(huì)被修改

System.out.println(str1); // 輸出: Hello World

System.out.println(str2); // 輸出: Hello

雖然我們對(duì) str1 進(jìn)行了拼接,但實(shí)際上是創(chuàng)建了一個(gè)新的字符串對(duì)象,并將 str1 指向這個(gè)新對(duì)象,而 str2 仍然指向原始的 “Hello” 對(duì)象。

StringBuilder對(duì)象是可變的,這意味著它的內(nèi)容可以在不創(chuàng)建新對(duì)象的情況下被修改。

// 初始狀態(tài)

System.out.println("初始狀態(tài):");

System.out.println("StringBuilder地址: " + System.identityHashCode(sb));

// 追加字符串

sb.append(" World");

System.out.println("StringBuilder地址: " + System.identityHashCode(sb));

//追加字符串前后的地址并不會(huì)改變

StringBuilder的底層實(shí)現(xiàn)主要依賴于一個(gè)可變的字符數(shù)組 char[],以及一個(gè)表示當(dāng)前字符串長(zhǎng)度的整數(shù) length。StringBuilder類(lèi)提供了一系列方法來(lái)操作這個(gè)字符數(shù)組,從而實(shí)現(xiàn)字符串的各種操作,如追加、插入、刪除、替換等。

StringBuilder的基本操作

StringBuilder sb = new StringBuilder("Hello");

// 追加字符串

sb.append(" World");

System.out.println(sb.toString()); // 輸出: Hello World

// 插入字符串

sb.insert(5, " Beautiful");

System.out.println(sb.toString()); // 輸出: Hello Beautiful World

// 刪除字符串

sb.delete(5, 16);

System.out.println(sb.toString()); // 輸出: Hello World

// 替換字符串

sb.replace(6, 11, "Java");

System.out.println(sb.toString()); // 輸出: Hello Java

// 反轉(zhuǎn)字符串

sb.reverse();

System.out.println(sb.toString()); // 輸出: avaJ olleH

// 設(shè)置長(zhǎng)度

sb.setLength(5);

System.out.println(sb.toString()); // 輸出: avaJ

三、StringBuffer類(lèi)

StringBuilder和StringBuffer都是Java中用于操作可變字符串的類(lèi),它們的主要區(qū)別在于線程安全性和性能特征。

StringBuilder 是在 Java 5 中引入的,它是非線程安全的,但是在單線程環(huán)境中性能更好。主要特點(diǎn)包括:

非線程安全:StringBuilder 的方法不是線程安全的,適合在單線程環(huán)境下使用。性能:由于不需要進(jìn)行線程同步操作,StringBuilder 的性能通常比 StringBuffer 更高??勺冃裕篠tringBuilder 是可變的,允許在不創(chuàng)建新對(duì)象的情況下修改其內(nèi)容。

StringBuffer 是 StringBuilder 的前身,它從 Java 1.0 開(kāi)始就存在了,提供了與 StringBuilder 類(lèi)似的 API,但是它是線程安全的。主要特點(diǎn)包括:

線程安全:所有 StringBuffer 的方法都是同步的,所以它是線程安全的,適合在多線程環(huán)境下使用。性能:由于需要進(jìn)行線程同步操作,StringBuffer 的性能通常比 StringBuilder 差一些??勺冃裕篠tringBuffer 也是可變的,允許在不創(chuàng)建新對(duì)象的情況下修改其內(nèi)容。

四、StringJoiner類(lèi)

StringJoiner 是 Java 8 中引入的一個(gè)類(lèi),用于在處理字符串序列時(shí),特別是以分隔符分隔的序列時(shí),提供了方便的方法。它允許你指定一個(gè)分隔符、可選的前綴和后綴,然后通過(guò)追加元素來(lái)構(gòu)建最終的字符串。

主要特點(diǎn)和用法

構(gòu)造方法 StringJoiner 提供了多個(gè)構(gòu)造方法,其中最常用的是帶有分隔符參數(shù)的構(gòu)造方法: StringJoiner sj = new StringJoiner(",", "[", "]");

第一個(gè)參數(shù)是分隔符,用于將添加的元素分隔開(kāi)。第二個(gè)參數(shù)是可選的前綴。第三個(gè)參數(shù)是可選的后綴。 添加元素 使用 add 方法向 StringJoiner 中添加元素: sj.add("Apple").add("Banana").add("Cherry");

這會(huì)在 StringJoiner 中依次添加 “Apple”, “Banana”, “Cherry” 這三個(gè)元素,每個(gè)元素之間用逗號(hào)分隔。 獲取結(jié)果 使用 toString 方法獲取最終的合并結(jié)果: String result = sj.toString();

在上面的例子中,result 的值將是 "[Apple,Banana,Cherry]"。

可選操作

設(shè)置空值處理 可以通過(guò) setEmptyValue 方法設(shè)置當(dāng) StringJoiner 沒(méi)有任何元素時(shí),默認(rèn)的返回值: StringJoiner sj = new StringJoiner(",");

sj.setEmptyValue("Empty");

當(dāng)沒(méi)有任何元素被添加時(shí),調(diào)用 toString 方法會(huì)返回 “Empty”。 合并多個(gè) StringJoiner 可以使用 merge 方法合并多個(gè) StringJoiner: StringJoiner sj1 = new StringJoiner(",");

sj1.add("Apple").add("Banana");

StringJoiner sj2 = new StringJoiner(",");

sj2.add("Cherry").add("Date");

sj1.merge(sj2);

這將把 sj2 中的元素合并到 sj1 中。

如果你喜歡這篇文章,點(diǎn)贊?+評(píng)論+關(guān)注??哦! 歡迎大家提出疑問(wèn),以及不同的見(jiàn)解。

柚子快報(bào)激活碼778899分享:開(kāi)發(fā)語(yǔ)言 Java——字符串

http://yzkb.51969.com/

精彩內(nèi)容

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18979703.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄