最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中如何正確定義字符串

 更新時間:2023年10月11日 08:47:16   作者:程序員小橙  
這篇文章主要給大家介紹了關(guān)于Java中如何正確定義字符串的相關(guān)資料,在Java中定義一個字符串最簡單的方法是用雙引號把它包圍起來,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

字符串是 Java 中特殊的類,使用方法像一般的基本數(shù)據(jù)類型,被廣泛應(yīng)用在 Java 編程中。Java 沒有內(nèi)置的字符串類型,而是在標(biāo)準(zhǔn) Java 類庫中提供了一個 String 類來創(chuàng)建和操作字符串。

在 Java 中定義一個字符串最簡單的方法是用雙引號把它包圍起來。這種用雙引號括起來的一串字符實際上都是 String 對象,如字符串“Hello”在編譯后即成為 String 對象。因此也可以通過創(chuàng)建 String 類的實例來定義字符串。

不論使用哪種形式創(chuàng)建字符串,字符串對象一旦被創(chuàng)建,其值是不能改變的,但可以使用其他變量重新賦值的方式進(jìn)行更改。

一、直接定義字符串

直接定義字符串是指使用雙引號表示字符串中的內(nèi)容,例如“Hello Java”、“Java 編程”等。具體方法是用字符串常量直接初始化一個 String 對象,示例如下:

String str = "Hello Java";
String str;
str = "Hello Java";

舉例說明:

String str = "我是一只小小鳥"; // 結(jié)果:我是一只小小鳥
String word;
word = "I am a bird"; // 結(jié)果:I am a bird
word = "<h1>to fly</h1>"; // 結(jié)果:<h1>to fly</h1>
word = "Let\'s say that it\'s true"; // 結(jié)果:Let's say that it's true
System.out.println(word);
word = "北京\\上海\\廣州"; // 結(jié)果:北京\上海\廣州

二、使用 String 類定義

String 類的構(gòu)造方法有多種重載形式,每種形式都可以定義字符串。下面介紹最常用的幾種形式。

1. String()

初始化一個新創(chuàng)建的 String 對象,表示一個空字符序列。

2. String(String original)

初始化一個新創(chuàng)建的 String 對象,使其表示一個與參數(shù)相同的字符序列。換句話說,新創(chuàng)建的字符串是該參數(shù)字符串的副本。例如:

String str1 = new String("Hello Java");
String str2 = new String(str1);

這里 str1 和 str2 的值是相等的。

3. String(char[ ]value)

分配一個新的字符串,將參數(shù)中的字符數(shù)組元素全部變?yōu)樽址?。該字符?shù)組的內(nèi)容已被復(fù)制,后續(xù)對字符數(shù)組的修改不會影響新創(chuàng)建的字符串。例如:

char a[] = {'H','e','l','l','0'};
String sChar = new String(a);
a[1] = 's';

上述 sChar 變量的值是字符串“Hello”。 即使在創(chuàng)建字符串之后,對 a 數(shù)組中的第 2 個元素進(jìn)行了修改,但未影響 sChar 的值。

4. String(char[] value,int offset,int count)

分配一個新的 String,它包含來自該字符數(shù)組參數(shù)一個子數(shù)組的字符。offset 參數(shù)是子數(shù)組第一個字符的索引,count 參數(shù)指定子數(shù)組的長度。該子數(shù)組的內(nèi)容已被賦值,后續(xù)對字符數(shù)組的修改不會影響新創(chuàng)建的字符串。例如:

char a[]={'H','e','l','l','o'};
String sChar=new String(a,1,4);
a[1]='s';

上述 sChar 變量的值是字符串“ello”。該構(gòu)造方法使用字符數(shù)組中的部分連續(xù)元素來創(chuàng)建字符串對象。offset 參數(shù)指定起始索引值,count 指定截取元素的個數(shù)。創(chuàng)建字符串對象后,即使在后面修改了 a 數(shù)組中第 2 個元素的值,對 sChar 的值也沒有任何影響。

附:字符串轉(zhuǎn)換與截取

字符串拼接的底層原理

1)如果沒有變量參與,都是字符串直接相加,編譯之后就是拼接的結(jié)果,會復(fù)用串池中的字符串。

2)如果有變量參與,每一行拼接的代碼,都會在內(nèi)存中創(chuàng)建新的字符串,浪費內(nèi)存。

public class Test{
	public static void main(String[] args){
		String s1 = "abc";
		String s2 = "ab";
		String s3 = s2+"c";
		String s4 = "a"+"b"+"c";
		System.out.println(s1 == s3); //false,因為s3有變量相加,會創(chuàng)建新的字符串
		System.out.println(s1 == s4); //true, s4沒有變量參與,會復(fù)用已存在的字符串,與s1地址一樣
	} 
}

字符轉(zhuǎn)換成int型

char ch = str.charAt(i);
int n = ch -48;  //48代表字符‘0'

修改字符串內(nèi)容

1)使用subString截取

String s = "abcd";
char ch = s.charAt(0); //拿到第一個字符
String se = s.subString(1); //拿到從1開始的字符串至結(jié)尾
return se + ch; //拼接成新的字符串

2)將字符串變?yōu)樽址麛?shù)組,操作完再將其轉(zhuǎn)化為字符串

String s = "abcd";
char[] cs = s.toCharArray();
char first = cs[0]; //拿到第一個字符
for(int i = 1; i < cs.length; i++ ){
	cs[i-1] = cs[i]; //將后面的字符依次前移
}
cs[cs.length-1] = first; //將第一個字符放到最后
String str = new String(cs); //創(chuàng)建新字符串
return str;

總結(jié)

到此這篇關(guān)于Java中如何正確定義字符串的文章就介紹到這了,更多相關(guān)Java定義字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • 詳解SpringBoot實現(xiàn)JPA的save方法不更新null屬性

    詳解SpringBoot實現(xiàn)JPA的save方法不更新null屬性

    直接調(diào)用原生Save方法會導(dǎo)致null屬性覆蓋到數(shù)據(jù)庫,使用起來十分不方便。本文詳細(xì)的介紹了如何解決這個問題,非常具有實用價值,需要的朋友可以參考下
    2018-12-12
  • 簡單實現(xiàn)Spring的IOC原理詳解

    簡單實現(xiàn)Spring的IOC原理詳解

    這篇文章主要介紹了簡單實現(xiàn)Spring的IOC原理詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 解決java連接zookeeper很慢的問題

    解決java連接zookeeper很慢的問題

    這篇文章主要介紹了解決java連接zookeeper很慢的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java拋出異常與finally實例解析

    java拋出異常與finally實例解析

    這篇文章主要介紹了java拋出異常與finally實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Java實現(xiàn)對象按照其屬性排序的兩種方法示例

    Java實現(xiàn)對象按照其屬性排序的兩種方法示例

    這篇文章主要介紹了Java實現(xiàn)對象按照其屬性排序的兩種方法,結(jié)合實例形式詳細(xì)分析了Java對象按照其屬性排序的兩種實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2020-05-05
  • Java實現(xiàn)圖片拼接

    Java實現(xiàn)圖片拼接

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)圖片拼接的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Spring如何使用AOP實現(xiàn)聲明式事務(wù)管理

    Spring如何使用AOP實現(xiàn)聲明式事務(wù)管理

    Spring?使用?AOP?實現(xiàn)聲明式事務(wù)管理是其最強(qiáng)大的功能之一,這篇文章小編將詳細(xì)拆解這個過程,從高層概念到底層原理,感興趣的小伙伴可以參考一下
    2025-06-06
  • 實例解析Java中的構(gòu)造器初始化

    實例解析Java中的構(gòu)造器初始化

    這篇文章主要通過實例解析Java中的構(gòu)造器初始化,代碼很簡單,敘述很明確,需要的朋友可以了解下。
    2017-09-09
  • Spring?boot事務(wù)無效報錯:Transaction?not?enabled問題排查解決

    Spring?boot事務(wù)無效報錯:Transaction?not?enabled問題排查解決

    在業(yè)務(wù)代碼中經(jīng)常需要保證事務(wù)的原子性,但是有的時候確實是出現(xiàn)事務(wù)沒有生效,這篇文章主要給大家介紹了關(guān)于Spring?boot事務(wù)無效報錯:Transaction?not?enabled問題排查的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Redis工具類封裝RedisUtils的使用示例

    Redis工具類封裝RedisUtils的使用示例

    本文主要介紹了Redis工具類封裝RedisUtils的使用示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

修文县| 曲松县| 新河县| 公主岭市| 朝阳市| 渑池县| 泉州市| 竹北市| 福泉市| 中阳县| 萨迦县| 海淀区| 大石桥市| 南漳县| 南澳县| 萝北县| 大新县| 集安市| 东至县| 江西省| 夏津县| 临沧市| 巴塘县| 古浪县| 金华市| 农安县| 海伦市| 开鲁县| 张家口市| 新巴尔虎右旗| 晋城| 古交市| 宁晋县| 靖宇县| 肃北| 黄浦区| 白城市| 土默特左旗| 香格里拉县| 灵寿县| 汉源县|