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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java之String

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java之String 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、String類的特性

String對象是不可變的,字符串一旦創建,就不可以改變。


二、構造字符串

? ? ? 字符串直接量

String a=new String("字符串直接量");?

? ? ? 字符數組

String b=new String(chars);

? ? ? 字符串直接量賦值,java把字符串直接量看作String對象

String c="字符串直接量";

? ? ?注意:String變量存儲的是String對象的引用


三、不可變字符串與限定字符串

String對象是不可變的。

a的String對象保存在堆內存中,具有唯一的內存空間

c的String對象為限定字符串保存在JVM字符串駐留池中,多個相同的String對象共用一個內存空間

例如:

a=="字符串直接量";? // fase

c=="字符串直接量"; ?//true


獲得字符串的限定字符串的引用使用intern方法

String d=a.intern();

d==c; ? ? //true


四、字符串替換和分隔

repalce(char old,char new) ? ? ? ? ? ? ? ? ? ? String

repalceFirst(String old,String new) ? ? ? ?Strring ?

repalceAll(String old,String new) ? ? ? ? ? String

split(String delimiter) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String[] ? ? ? ? ? ? //分割字符串

split(String delimiter,int limit) ? ? ? ? ? ? ? ? ?String[] ??

? ? ? ? ? ?

limit 參數控制模式應用的次數,因此影響所得數組的長度。

n > 0,則模式將被最多應用 n - 1 次,數組的長度將不會大于 n,而且數組的最后一項將包含所有超出最后匹配的定界符

n <0,那么模式將被應用盡可能多的次數,而且數組可以是任何長度

n = 0,那么模式將被應用盡可能多的次數,數組可以是任何長度,并且結尾空字符串將被丟棄


例如,字符串 "boo:and:foo" 使用這些參數可生成以下結果:
RegexLimit結果
? ?:? ? ? ? ??2? ? ? ??{ "boo", "and:foo" }
? ?:? ? ? ? ? 5? ? ? ??{ "boo", "and", "foo" }
? ?:? ? ? ? ?-2? ? ? ??{ "boo", "and", "foo" }
? o? ? ? ? ??5? ? ? ??{ "b", "", ":and:f", "", "" }
? o? ? ? ? ?-2? ? ? ??{ "b", "", ":and:f", "", "" }
? o? ? ? ? ??0? ? ? ??{ "b", "", ":and:f" }

Limit為-2,{ "b", "", ":and:f", "", "" } 第一個“”是因為兩個o之間的空數據,第二個也是這個原因,最后一個是將"boo:and:foo"中最后空字符串也算進去的。


五、模式匹配、替換和分割

matchs(String regex) ? ?與equals方法非常相似,判斷子串是否匹配。

"javac".match("javac");

"javac".equals("javac");

結果都為true。

matchs更強大,可以匹配遵循一定規律的字符串。

比如:"javac myclass".match("javac.*"); ? ? ? ? ? ? ? ? ?//子串.*的意思是字符串后面緊跟0個或多個任意字符

\\d表示單個數字字符,\\d{3}表示3個數字字符

方法repalceAll、repalceFirst、split可以和正則表達式結合一起使用。

詳細參考java之正則表達式


六、常用方法

?

length() ? ? ? ? ? ? ? ? ? ? ? ? ? 返回字符串長度

charAt(index) ? ? ? ? ? ? ? ?返回指定位置的字符

concat() ? ? ? ? ? ? ? ? ? ? ? ? ?與+功能相同,都是連接字符串返回新的字符串,效率比+高一些

toUpperCae() ? ? ? ? ? ? ? ?返回轉成大寫的字符串

toLowerCase() ? ? ? ? ? ? 返回轉成小寫的字符串

trim() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回去除前后兩端空白字符的字符串

注意:""表示空字符串,并且"".length()為0? ? ? ?

equals(s1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 判斷是否相等

equalsIgnoreCase(s1) ? ? ? ? ? ? ? ? ? ?判斷是否相等不區分大小寫

compareTo(s1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?比較大小,若大于返回大于0的整數,若小于返回小于0的數,等于返回0

compareToIgnoreCase(s1) ? ? ? ? ???比較大小,若大于返回大于0的整數,若小于返回小于0的數,等于返回0,不區分大小寫

startsWith(prefix) ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字符串以指定的前綴開始,返回true

endsWith(suffix) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??字符串以指定的后綴結束,返回true

contains(s1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s1字符串是否該串的子串

?

? ? ? ? ??警告:字符串不能像c++一樣使用<,>,<=,>=來比較。

? ? ? ? ? 注意:equals方法返回是boolean類型,compareTo方法返回int類型

substring(beginIndex) ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回子串

substring(beginIndex,endIndex) ? ? ? ? ??返回子串

indexOf(ch/s) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回第一個出現ch/s的下標 ? ? ? ch/s意思是char或者String類型的變量

indexOf(ch/s,fromIndex) ? ? ? ? ? ? ? ? ? ? ? ?返回在fromIndex之后第一個出現ch/s的下標

?

lastIndexOf(ch/s) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回最后一個出現ch/s的下標

LastIndexOf(ch/s,fromIndex) ? ? ? ? ? ? ? ??返回在fromIndex之前最后一個出現ch/s的下標

以上返回下標的函數,如果沒有找到這返回-1。

七、字符串與數值的轉換(數值型的封裝類具有字符串轉數值的函數)

Integer.parseInt(s)Double.parseDouble(s)?Byte.parseByte(s)Long.parseLong(s)

八、數值或者字符轉字符串

1)String ?s=number+"";2)對應的封裝類的toString方法調用

? ? ? ? ? 3)String.valueOf(value)方法

? ? ? ? ? ?

九、格式化字符串

? ? ? ? ?String.fomat(format,value0,...);

%d ? ? 布爾值

%c ? ?字符

%d ? ?十進制整數

%x ? ?十六進制整數

%f ? ?浮點數

%e ? 科學記數法形式的數

%s ? 字符串

?

? ? ? ? ?%5c ? ? ? ? ? ?輸出字符并在前面加四個空格

? ? ? ? ?%10.2f ? ? ? 輸出浮點數條目的寬度至少為10,包括小數點和小數點后兩位數字

? ? ? ? ?%10.2e ? ???輸出浮點數條目的寬度至少為10,包括小數點和小數點后兩位數字和指數部分

? ? ? ? ?%12s ? ? ? ? 字符串寬度至少為12個字符,如果字符串長度少于12個字符,則前面補空格。如果多于12個字符,則自動增長

? ? ??? ?%-5c ? ? ? ??輸出字符并在后面加四個空格,即左對齊

? ? ? ? ? ?例如:String c=?String.fomat("c=%d",9); ? ? ? ? ? ? //c為字符串c=9


十、字符串與字符數組

? ? ? ? ?String ?a = new String(new char[]{'a','b','c'});

? ? ? ? ?char[] ? c = a.toCharArray();


十一、StringBuilder與StringBuffer

? ? ??StringBuilder與StringBuffer是可變類。如果頻繁修改內容,StringBuilder與StringBuffer比String的效率高

? ? ? StringBuffer是線程安全的

? ? ??StringBuilder與StringBuffer的常用方法append、delete、insert、replace、reverse、setCharAt、length、substring。

? ? ? 詳細查閱java之StringBuilder與StringBuffer

?

總結

以上是生活随笔為你收集整理的java之String的全部內容,希望文章能夠幫你解決所遇到的問題。

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