一、字符串相關函數的操作 1、indexOf(String str, int fromIndex)//返回指定子字符串在此字符串中第一次出現處的索引,從指定的索引開始。 說明:字符串的索引從0開始! 2、substring(int beginIndex, int endIndex)//返回一個新字符串,它是此字符串的一個子字符串。 說明:返回的字符串是beginIndex~endIndex-1,因此得到的字符串長度為endIndex-beginIndex?
例如:"hamburger".substring(4,

(1)、以為 str.replaceAll("ab","b");就把str中的所有"ab"換成了"b"!注意,這個函數是將替換后的字符串返回了。因此應該str=str.replaceAll("ab","b");?
(2)、?
4、split(String regex)//根據給定正則表達式的匹配拆分此字符串。返回String[] 說明:?
(1)、String str=""," ",null,這三者的區別。?
"",分配了內存,但值為空,length=0;java中不存在像C/C++中那樣字符串后面有"\0"?
" ",分配了內存,值為空格,length=1,對應一個ASCII碼?
null,沒有分配內存,無法引用.length(),僅將str引用置為null,表示無引用~?
(2)、String[] xy = new String[0];?
在Java中允許創建一個大小為0的數組,也就是說"int[] emptyArray = new int[0];"在Java中是正確的。這樣的數組沒有分配空間?。用處是:當返回數組中元素為0時,可以不用返回null,而是返回一個[0]的數組,引用時不會像引用null那樣出現異常!。當然,大小為負數的數組在Java中是不被允許的。 (3)、split()函數中會出現很奇怪的問題,例如http://www.cnblogs.com/liubiqu/archive/2008/08/14/ 1267867.html
eg..1:?
String s = "abc";?
String[] keys = s.split("");?
結果:keys長度為4,值分別為"",a,b,c。至今未能弄明白數組的第一個元素從何而來??
eg..2:?
String s = " abc";//第一個位置上是空格?
String[] keys = s.split(" ");//中間是空格?
結果:keys長度為2,值為"",abc,也就是"空格"是分隔符!,這種才能通過空格來分割字符串,注意,不是第一種那樣做!?
注意:s="? ab",則用空格分開后的keys長度為3,分別為"","",ab。??
而s="ab? ",則空格分開后的keys長度為1,是ab。這說明字符串中第一個字符是否為空格這一條件很重要!????
若s=" ",則空格分開后的keys長度為0,說明字符串中是否有字符也很重要。
eg..3:?
String s = " abc";?
String[] keys = s.split("x");//字符串中不存在的字符?
結果:keys長度為1,值為" abc"。?
說明:如果split的字符串中不含有該子串,則返回原字符串!?
eg..4:?
String s = "abc";?
String[] keys = s.split(".");//特殊字符,若不轉義("\\."),則會無法split,返回數組個數為0!?
結果:keys長度為0!??
說明:split無法進行后,不會返回一個null,而是返回一個大小為0的數組。這樣程序更加健壯! 二、其他
5、java中char和int間的轉化:
char可以直接轉為int:?
char x = 'A'; int y = x;?
int轉char則需要強制轉換!?
x=(char)y;
6、正則匹配字符串。?
String s = "abcd";?
System.out.println(s.match("[a-zA-Z]*"));//print true
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
