欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中如何正確定義字符串

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

前言

字符串是 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)建,其值是不能改變的,但可以使用其他變量重新賦值的方式進行更改。

一、直接定義字符串

直接定義字符串是指使用雙引號表示字符串中的內(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 個元素進行了修改,但未影響 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)文章

  • JAVA對稱加密算法PBE定義與用法實例分析

    JAVA對稱加密算法PBE定義與用法實例分析

    這篇文章主要介紹了JAVA對稱加密算法PBE定義與用法,結(jié)合實例形式分析了JAVA對稱加密算法PBE的概念、原理、定義及使用方法,需要的朋友可以參考下
    2019-09-09
  • java中的實體類時間格式化

    java中的實體類時間格式化

    這篇文章主要介紹了java中的實體類時間格式化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java for each實現(xiàn)機制代碼原理解析

    Java for each實現(xiàn)機制代碼原理解析

    這篇文章主要介紹了Java for each實現(xiàn)機制代碼原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot開發(fā)實戰(zhàn)系列之動態(tài)定時任務(wù)

    SpringBoot開發(fā)實戰(zhàn)系列之動態(tài)定時任務(wù)

    在我們?nèi)粘5拈_發(fā)中,很多時候,定時任務(wù)都不是寫死的,而是寫到數(shù)據(jù)庫中,從而實現(xiàn)定時任務(wù)的動態(tài)配置,下面這篇文章主要給大家介紹了關(guān)于SpringBoot開發(fā)實戰(zhàn)系列之動態(tài)定時任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • springmvc項目使用@Valid+BindingResult遇到的問題

    springmvc項目使用@Valid+BindingResult遇到的問題

    這篇文章主要介紹了springmvc項目使用@Valid+BindingResult遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • MAC上IntelliJ IDEA的svn無法保存密碼解決方案

    MAC上IntelliJ IDEA的svn無法保存密碼解決方案

    今天小編就為大家分享一篇關(guān)于MAC上IntelliJ IDEA的svn無法保存密碼解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • java字符串的合并

    java字符串的合并

    合并兩個字符串,如:str1 ="001,002,003,004,006",str2 = "001,002,005" 合并后應(yīng)該是"001,002,003,004,005,006"。
    2008-10-10
  • Java框架Quartz中API、Jobs和Trigger詳解

    Java框架Quartz中API、Jobs和Trigger詳解

    這篇文章主要介紹了Java框架Quartz中API、Jobs和Trigger詳解,JobDetail?對象是在將?job?加入?scheduler?時,由客戶端程序(你的程序)創(chuàng)建的,它包含?job?的各種屬性設(shè)置,以及用于存儲?job?實例狀態(tài)信息的?JobDataMap,需要的朋友可以參考下
    2023-11-11
  • java中main函數(shù)你知道多少

    java中main函數(shù)你知道多少

    大家好,本篇文章主要講的是java中main函數(shù)你知道多少,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 詳解MybatisPlus中@TableLogic注解的使用

    詳解MybatisPlus中@TableLogic注解的使用

    @TableLogic一般用于實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)邏輯刪除,本文我們將介紹 @TableLogic 注解的用法,以及每個屬性的實際意義和用法,感興趣的可以了解一下
    2022-06-06

最新評論