日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 中 String 类的常规操作

發布時間:2024/9/30 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 中 String 类的常规操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

String類型詳解

String本身就是一個類,只是Java對其進行了特殊處理。

兩種實例化方式原理及區別:

/* 兩種創建 String 對象的方法
* 1.
直接賦值:(推薦按這種方法)
* 2.
使用構造方法
* */
String str1 = "123";
String str2 = new String("123");

/*兩者的區別
* 1.
直接賦值: 只會開辟一塊堆內存空間,并且該對象會保存在對象池中,以供下次使用
* 2.
使用構造方法: 會開辟兩塊堆內存空間,并且一塊將會成為垃圾,并且不會自動保存到對象池中,但可以通過 str1.intern() 方法手工入池
* */
// 兩種創建 string 對象的區別
String str3 = "123";??? // str1 共享 "123" 數據所占的堆內存空間
System.out.println(str1 == str3);?? // 值為: true;??? JVM的常量共享


// 字符串的比較
System.out.println(str1 == str2);?? // 結果為 false
System.out.println(str1.equals(str2)); // 結果為 true
/*
*
原因分析:
* "=="
只能進行數值的比較,str1 == str2 實際比較的是兩個字符串內存地址的數值
* "equals()"
比較的才是兩者的內容的區別
* */

/*
*
在以后的開發中強烈建議采用 way_2 比較字符串.
*
原因在于:
*?? way_1
str1 如果為空的話會產生空指針異常,導致程序終止
*?? way_2
str1 即使為空,只會得到的結果為 false,不會出現異常
* */
// way_1
str1.equals("hello");
// way_2
"hello".equals(str1);

?

常用操作分類:

構造函數:

String(byte[]?bytes)

String(byte[]?bytes,?Charset?charset)

String(byte[]?bytes,?String?charsetName)

String(byte[]?bytes, int?offset, int?length)

String(char[]?value)

String(char[]?value, int?offset, int?count)

String(StringBuffer?buffer)

String(StringBuilder?builder)

字符串與字符數組:

??????

char[]

toCharArray()

?

字節與字符串:

byte[]

getBytes()

byte[]

getBytes(Charset?charset)

byte[]

getBytes(String?charsetName)

?

字符串比較:

int

compareTo(String?anotherString)

比較字符串的大小(-101

int

compareToIgnoreCase(String?str)

忽略大小寫比較字符串大小

boolean

equals(Object?anObject)

boolean

equalsIgnoreCase(String?anotherString)

?

字符串查找:

boolean

contains(CharSequence?s)

是否包含

boolean

endsWith(String?suffix)

int

indexOf(String?str)

返回找到的 str 的首字母索引值

int

indexOf(String?str, int?fromIndex)

從指定位置查找

int

lastIndexOf(String?str)

倒著查找

int

lastIndexOf(String?str, int?fromIndex)

boolean

matches(String?regex)

使用正則表達式匹配

boolean

startsWith(String?prefix)

boolean

startsWith(String?prefix, int?toffset)

?

字符串替換:

String

replace(char?oldChar, char?newChar)

String

replaceAll(String?regex,?String?replacement)

String

replaceFirst(String?regex,?String?replacement)

?

字符串拆分:

String[]

split(String?regex)

String[]

split(String?regex, int?limit)

限制拆分后的個數

?

字符串截取:

String

substring(int?beginIndex)

String

substring(int?beginIndex, int?endIndex)

?

其他常用方法

char

charAt(int?index)

返回指定索引位置的字符

String

concat(String?str)

連接兩個字符串類似 “+”

boolean

isEmpty()

String

intern()

int

length()

String

toLowerCase()

轉換為小寫

String

toUpperCase()

轉換為大寫

String

trim()

去除開頭結尾的空格(注意只有這一種方法:1.8

?PS:上面的方法是直接從 Java 1.8 API 文檔中提取出來的,這里主要作為一個個人總結,由于較為簡單所以沒有符詳細代碼。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Java 中 String 类的常规操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。