本章目標
- 了解String類中的常用方法
- 了解API文檔的查找方法
1、具體內容
一門語言除了語言本身要非常優秀之外,另外最主要的就是要有語言的使用文檔,在文檔中明確地為用戶列出了全部的類及相關的操作方法及說明。
Split()和replaceAll()這兩個方法是需要正則支持的,關于正則的應用。
1.1、字符數組與字符串
一個字符串可以變為一個數組。同樣,也可以把一個字符數組,變為一個字符串。
在String類中提供了以下的操作方法:
- 將字符串變為字符數組:
public char[] toCharArray() - 字符數組變為字符串:
- public String(char[] value)
- public String(char[] value, int offset, int count)
public class StringAPIDemo01{
public static void main(String args[]){
String str1 = "hello" ; // 定義字符串
char c[] = str1.toCharArray() ; // 將一個字符串變為字符數組
for(int i=0;i<c.length;i++){ // 循環輸出
System.out.print(c[i] + "、") ;
}
System.out.println("") ; // 換行
String str2 = new String(c) ; // 將全部的字符數組變為String
String str3 = new String(c,0,3) ; // 將部分字符數組變為String
System.out.println(str2) ; // 輸出字符串
System.out.println(str3) ; // 輸出字符串
}
};
輸出結果:
h、e、l、l、o、
hello
hel
1.2、從字符串中取出指定位置的字符
如果要想使用此操作,則肯定此方法的返回值是一個char類型。public char charAt(int index)
public class StringAPIDemo02{
public static void main(String args[]){
String str1 = "hello" ; // 定義String對象
System.out.println(str1.charAt(3)) ; // 取出字符串中第四個字符
}
};
輸出結果:
l
1.3、字符串與byte數組的轉換
byte數組(字節數組),在一般的IO操作中會經常使用到。
在String類中提供了以下的方法可以進行字符串與字節數組間的轉換:
- 字符串變為字節數組:
public byte[] getBytes() - 將一個字符數組變為字符串:
- 將全部字節數組變為String:
public String(byte[] bytes) - 將部分字節數組變為String:
public String(byte[] bytes, int offset, int length)
- 將全部字節數組變為String:
public class StringAPIDemo03{
public static void main(String args[]){
String str1 = "hello" ; // 定義字符串
byte b[] = str1.getBytes() ; // 將字符串變為byte數組
System.out.println(new String(b)) ; // 將全部的byte數組變為字符串
System.out.println(new String(b,1,3)) ; // 將部分的byte數組變為字符串
}
};
輸出結果:
hello
ell
1.4、取得一個字符串的長度
要想取得字符串中的長度:public int length()
public class StringAPIDemo04{
public static void main(String args[]){
String str1 = "hello LiXingHua" ; // 定義字符串變量
System.out.println("\""+str1+"\"的長度為:"+str1.length()) ;
}
};
輸出結果:
"hello LiXingHua"的長度為:15
注意:
在操作數組中可以使用“數組名稱.length”,有些朋友就習慣在字符串操作的地方也是有“字符串.length”的格式(str1.length)。
1.5、查找指定的字符串是否存在
在實際操作中,經常會判斷一個字符串是否會存在某些內容,此時就可以使用以下的方法:
- 從頭開始查找:
public int indexOf(String str) - 從指定位置開始查找:
public int indexOf(String str, int fromIndex)
查找的時候方法的返回值是一個int類型的數據,此數據表示的是一個字符串的具體位置,如果沒有查找到此字符串,則返回“-1”.
public class StringAPIDemo05{
public static void main(String args[]){
String str1 = "abcdefgcgh" ; // 聲明字符串
System.out.println(str1.indexOf("c")) ; // 查到返回位置
System.out.println(str1.indexOf("c",3)) ; // 查到返回位置,從第4個位置開始查找
System.out.println(str1.indexOf("x")) ; // 沒有查到返回-1
}
};
輸出結果:
2
7
-1
1.6、去掉空格
如果假設一些信息是由用戶輸入的話,則有可能出現多余的空格,在這種操作中就可以使用trim()去掉字符串的左右空格,但是字符串中間的空格是不可能去掉的。
public class StringAPIDemo06{
public static void main(String args[]){
String str1 = " hello " ; // 定義字符串
System.out.println(str1.trim()) ; // 去掉左右空格后輸出
}
};
輸出結果:
hello
1.7、字符截取
從一個指定的字符串中取出里面部分內容,使用方法:
- 從指定位置開始一直截取到結束位置:
public String substring(int beginIndex) - 截取指定范圍的字符串:
public String substring(int beginIndex, it endIndex)
public class StringAPIDemo07{
public static void main(String args[]){
String str1 = "hello world" ; // 定義字符串
System.out.println(str1.substring(6)) ; // 從第7個位置開始截取
System.out.println(str1.substring(0,5)) ; // 截取0~5個位置的內容
}
};
輸出結果:
world
hello
1.8、拆分字符串
如果現在需要按指定的字符串去拆分一個字符串的話,則使用:public String[] split(String regex)
c class StringAPIDemo08{
public static void main(String args[]){
String str1 = "hello world" ; // 定義字符串
String s[] = str1.split(" ") ; // 按空格進行字符串的拆分
for(int i=0;i<s.length;i++){ // 循環輸出
System.out.println(s[i]) ;
}
}
};
輸出結果:
hello
world
1.9、大小寫轉換
此功能在一般的開發語言中都會存在,將一個大寫的字符串全部字母變為小寫,或者將小寫的字符串,全部字母變為大寫:
- 小寫變大寫:
public String toUpperCase() - 大寫邊小寫:
public String toLowerCase()
c class StringAPIDemo09{
public static void main(String args[]){
System.out.println("將\"hello world\"轉成大寫:" + "hello world".toUpperCase()) ;
System.out.println("將\"HELLO WORLD\"轉成小寫:" + "HELLO WORLD".toLowerCase()) ;
}
};
輸出結果:
將"hello world"轉成大寫:HELLO WORLD
將"HELLO WORLD"轉成小寫:hello world
1.10、判斷是否以指定的字符串開頭或結尾
在String中可以使用以下的兩個方法完成:
- 判斷是否以指定的字符串開頭:
public boolean startsWith(String prefix) - 判斷是否以指定的字符串結尾:
public boolean endsWith(String suffix)
public class StringAPIDemo10{
public static void main(String args[]){
String str1 = "**HELLO" ; // 定義字符串
String str2 = "HELLO**" ; // 定義字符串
if(str1.startsWith("**")){ // 判斷是否以“**”開頭
System.out.println("(**HELLO)以**開頭") ;
}
if(str2.endsWith("**")){ // 判斷是否以“**”結尾
System.out.println("(HELLO**)以**結尾") ;
}
}
};
輸出結果:
(**HELLO)以**開頭
(HELLO**)以**結尾
1.11、不區分大小寫的比較
在String類中,equals()方法是可以用來進行字符串比較的,但是此種比較方法只能針對于大小寫完全一樣的字符串進行比較,如果現在要是想進行不區分大小寫的比較,則可以使用以下的方法:
- public boolean equalsIgnoreCase(StringanotherSstring)
public class StringAPIDemo11{
public static void main(String args[]){
String str1 = "HELLO" ; // 定義字符串
String str2 = "hello" ; // 定義字符串
System.out.println("\"HELLO\" equals \"hello\" " + str1.equals(str2)) ;
System.out.println("\"HELLO\" equalsIgnoreCase \"hello\" "
+ str1.equalsIgnoreCase(str2)) ; // 不區分大小寫的比較
}
};
輸出結果:
"HELLO" equals "hello" false
"HELLO" equals "hello" true
1.12、字符串替換功能
在String類中提供了以下的方法用于字符串的替換操作:
- public String replaceAll(String regex, String replacement)
public class StringAPIDemo12{
public static void main(String args[]){
String str = "hello" ; // 定義字符串
String newStr = str.replaceAll("l","x") ; // 現在將所有的l替換成x
System.out.println("替換之后的結果:" + newStr) ;
}
};
輸出結果:
替換之后的結果:hexxo
2、總結
通過實例簡單介紹了整個String類中最常用的操作方法