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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java之String

發(fā)布時(shí)間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java之String 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、String類(lèi)的特性

String對(duì)象是不可變的,字符串一旦創(chuàng)建,就不可以改變。


二、構(gòu)造字符串

? ? ? 字符串直接量

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

? ? ? 字符數(shù)組

String b=new String(chars);

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

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

? ? ?注意:String變量存儲(chǔ)的是String對(duì)象的引用


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

String對(duì)象是不可變的。

a的String對(duì)象保存在堆內(nèi)存中,具有唯一的內(nèi)存空間

c的String對(duì)象為限定字符串保存在JVM字符串駐留池中,多個(gè)相同的String對(duì)象共用一個(gè)內(nèi)存空間

例如:

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 參數(shù)控制模式應(yīng)用的次數(shù),因此影響所得數(shù)組的長(zhǎng)度。

n > 0,則模式將被最多應(yīng)用 n - 1 次,數(shù)組的長(zhǎng)度將不會(huì)大于 n,而且數(shù)組的最后一項(xiàng)將包含所有超出最后匹配的定界符

n <0,那么模式將被應(yīng)用盡可能多的次數(shù),而且數(shù)組可以是任何長(zhǎng)度

n = 0,那么模式將被應(yīng)用盡可能多的次數(shù),數(shù)組可以是任何長(zhǎng)度,并且結(jié)尾空字符串將被丟棄


例如,字符串 "boo:and:foo" 使用這些參數(shù)可生成以下結(jié)果:
RegexLimit結(jié)果
? ?:? ? ? ? ??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", "", "" } 第一個(gè)“”是因?yàn)閮蓚€(gè)o之間的空數(shù)據(jù),第二個(gè)也是這個(gè)原因,最后一個(gè)是將"boo:and:foo"中最后空字符串也算進(jìn)去的。


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

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

"javac".match("javac");

"javac".equals("javac");

結(jié)果都為true。

matchs更強(qiáng)大,可以匹配遵循一定規(guī)律的字符串。

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

\\d表示單個(gè)數(shù)字字符,\\d{3}表示3個(gè)數(shù)字字符

方法repalceAll、repalceFirst、split可以和正則表達(dá)式結(jié)合一起使用。

詳細(xì)參考java之正則表達(dá)式


六、常用方法

?

length() ? ? ? ? ? ? ? ? ? ? ? ? ? 返回字符串長(zhǎng)度

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

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

toUpperCae() ? ? ? ? ? ? ? ?返回轉(zhuǎn)成大寫(xiě)的字符串

toLowerCase() ? ? ? ? ? ? 返回轉(zhuǎn)成小寫(xiě)的字符串

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

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

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

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

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

compareToIgnoreCase(s1) ? ? ? ? ???比較大小,若大于返回大于0的整數(shù),若小于返回小于0的數(shù),等于返回0,不區(qū)分大小寫(xiě)

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

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

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

?

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

? ? ? ? ? 注意:equals方法返回是boolean類(lèi)型,compareTo方法返回int類(lèi)型

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

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

indexOf(ch/s) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回第一個(gè)出現(xiàn)ch/s的下標(biāo) ? ? ? ch/s意思是char或者String類(lèi)型的變量

indexOf(ch/s,fromIndex) ? ? ? ? ? ? ? ? ? ? ? ?返回在fromIndex之后第一個(gè)出現(xiàn)ch/s的下標(biāo)

?

lastIndexOf(ch/s) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?返回最后一個(gè)出現(xiàn)ch/s的下標(biāo)

LastIndexOf(ch/s,fromIndex) ? ? ? ? ? ? ? ??返回在fromIndex之前最后一個(gè)出現(xiàn)ch/s的下標(biāo)

以上返回下標(biāo)的函數(shù),如果沒(méi)有找到這返回-1。

七、字符串與數(shù)值的轉(zhuǎn)換(數(shù)值型的封裝類(lèi)具有字符串轉(zhuǎn)數(shù)值的函數(shù))

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

八、數(shù)值或者字符轉(zhuǎn)字符串

1)String ?s=number+"";2)對(duì)應(yīng)的封裝類(lèi)的toString方法調(diào)用

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

? ? ? ? ? ?

九、格式化字符串

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

%d ? ? 布爾值

%c ? ?字符

%d ? ?十進(jìn)制整數(shù)

%x ? ?十六進(jìn)制整數(shù)

%f ? ?浮點(diǎn)數(shù)

%e ? 科學(xué)記數(shù)法形式的數(shù)

%s ? 字符串

?

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

? ? ? ? ?%10.2f ? ? ? 輸出浮點(diǎn)數(shù)條目的寬度至少為10,包括小數(shù)點(diǎn)和小數(shù)點(diǎn)后兩位數(shù)字

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

? ? ? ? ?%12s ? ? ? ? 字符串寬度至少為12個(gè)字符,如果字符串長(zhǎng)度少于12個(gè)字符,則前面補(bǔ)空格。如果多于12個(gè)字符,則自動(dòng)增長(zhǎng)

? ? ??? ?%-5c ? ? ? ??輸出字符并在后面加四個(gè)空格,即左對(duì)齊

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


十、字符串與字符數(shù)組

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

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


十一、StringBuilder與StringBuffer

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

? ? ? StringBuffer是線(xiàn)程安全的

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

? ? ? 詳細(xì)查閱java之StringBuilder與StringBuffer

?

總結(jié)

以上是生活随笔為你收集整理的java之String的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。