String類:
String類在java.lang包中,java使用String類創建一個字符串變量,字符串變量屬於對象。String類對象創建后不能修改,StringBuffer & StringBuilder 類。這時我們會問,為什么我們String變量賦值不就是改變了嗎?其實不是的,賦值后將會生成新的對像來存放新的內容,原先的對象依舊在內存中,但是s不在指向它,那么這個對象就會成為垃圾內存,在某一個特定的時刻有Java虛擬機回收。 詳情解釋請點擊 包含在一對雙引號之間。
String字符串變量的創建:
聲明: String 變量名;
String str;
聲明並初始化: String 變量名="初始值";
String str = "挨點博客";
String常用方法:
1、int length(); 語法:字符串變量名.length(); 返回值為 int 類型。得到一個字符串的字符個數(中、英、空格、轉義字符皆為字符,計入長度)
String a="挨點aidian \t\n";
int l = a.length();
System.out.println(l);
運行結果:11
2、char charAt(值); 語法 :字符串名.charAt(值); 返回值為 char 類型。從字符串中取出指定位置的字符
String str="張三瘋";
char c = str.charAt(2);
System.out.println("指定字符為:" + c);
運行結果:指定字符為:瘋
3、char toCharArray(); 語法 :字符串名.toCharArray(); 返回值為 char 數組類型。將字符串變成一個字符數組
String str="張三瘋";
char c[] = str.toCharArray();
for (int i = 0; i < c.length; i++)
System.out.println("轉為數組輸出:" + c[i]);
運行結果:
轉為數組輸出:張
轉為數組輸出:三
轉為數組輸出:瘋
4、int indexOf("字符") 語法 :字符串名.indexOf("字符");字符串名.indexOf("字符",值);查找一個指定的字符串是否存在,返回的是字符串的位置,如果不存在,則返回-1 。
in lastIndexOf("字符") 得到指定內容最后一次出現的下標
String str="只為挨你近一點";
int a1 = str.indexOf("你");// 查找字符你的位置
int a2 = str.indexOf("為", 2);// 查找為的位置,從第3個開始查找
int a3 = str.lastIndexOf("點");
System.out.println("你的位置為:" + a1);
System.out.println("為的位置為:" + a2);
System.out.println("點最后出現的位置為:" + a3);
運行結果:
你的位置為:3
為的位置為:-1
點最后出現的位置為:7
5、toUpperCase(); toLowerCase();字符串大小寫的轉換
String str="hello world";
System.out.println("將字符串轉大寫為:" + str.toUpperCase());
System.out.println("將字符串轉換成小寫為:" + str.toUpperCase().toLowerCase());
運算結果:
將字符串轉大寫為:HELLO WORLD
將字符串轉換成小寫為:hello world
6、String[] split("字符") 根據給定的正則表達式的匹配來拆分此字符串。形成一個新的String數組。
String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.split("o");
運行結果:
arr1 //{ "boo", "and", "foo" }
arr2 //{ "b", "", ":and:f" }
7、boolean equals(Object anObject) 語法 :字符串變量名.wquals(字符串變量名); 返回值為布爾類型。所以這里用 if 演示。比較兩個字符串是否相等,返回布爾值
String str = "hello";
String str1="world";
if(str.equals(str1))
{
System.out.println("這倆字符串值相等");
}
else
{
System.out.println("這倆字符串值不相等");
}
運行結果:
這倆字符串值不相等
8、trim(); 去掉字符串左右空格 replace(char oldChar,char newChar);新字符替換舊字符,也可以達到去空格的效果一種。
String str = " 挨點博客 "; System.out.println("去掉左右空格后:" + str.trim());
運行結果:
去掉左右空格后:挨點博客
第二種:
String str = " 挨點博客 ";
System.out.println("去掉左右空格后:" + str.replace(" ",""));
運行結果:
去掉左右空格后:挨點博客
9、String substring(int beginIndex,int endIndex) 截取字符串
String str = "123挨點博客456";
System.out.println("截取后的字符為:" + str.substring(0,3));// 截取0-3個位置的內容 不含3
System.out.println("截取后字符為:" + str.substring(2));// 從第3個位置開始截取 含2
運行結果:
截取后的字符為:123
截取后字符為:3挨點博客456
10、boolean equalsIgnoreCase(String) 忽略大小寫的比較兩個字符串的值是否一模一樣,返回一個布爾值
String str = "HELLO WORLd";
String str1 = "hello world";
if(str.equalsIgnoreCase(str1))
{
System.out.println("兩個字符串相等");
}
else
{
System.out.println("兩個字符串不相等");
}
運行結果:
兩個字符串相等
11、boolean contains(String) 判斷一個字符串里面是否包含指定的內容,返回一個布爾值
String str = "HELLO WORLd";
String str1 = "WO";
if(str.contains(str1))
{
System.out.println("str內容中存在WO");
}
else
{
System.out.println("抱歉沒找着");
}
運行結果:
str內容中存在WO
12、boolean startsWith(String) 測試此字符串是否以指定的前綴開始。返回一個布爾值
String str = "HELLO WORLd";
String str1 = "HE";
if(str.startsWith(str1))
{
System.out.println("str內容中存在HE前綴開頭");
}
else
{
System.out.println("抱歉沒找着");
}
運行結果:
str內容中存在HE前綴開頭
13、boolean endsWith(String) 測試此字符串是否以指定的后綴結束。返回一個布爾值
String str = "挨點博客";
String str1 = "博客";
if(str.endsWith(str1))
{
System.out.println("str內容中存在\'博客\'后綴結束");
}
else
{
System.out.println("抱歉沒找着");
}
運行結果:
str內容中存在'博客'后綴結束
14、上面提到了replace方法,接下繼續補充一下 String replaceAll(String,String) 將某個內容全部替換成指定內容, String repalceFirst(String,String) 將第一次出現的某個內容替換成指定的內容
String str = ",,,,,,挨點博客,,,,, "; System.out.println("改變后:" + str.replaceAll(",","a"));
運行結果:改變后:a,,,,,挨點博客,,,,,
String str = ",,,,,,挨點博客,帥嗎,帥嗎,,,,, "; System.out.println("改變后:" + str.replaceFirst("帥嗎","很帥哦")); 運行結果:改變后:,,,,,,挨點博客,很帥哦,帥嗎,,,,,
鞏固的時候查閱了很多資料。給大家推薦一個工具,是一個java使用手冊在線版 http://tool.oschina.net/apidocs/apidoc?api=jdk-zh 希望對你們的學習有幫助,並多多支持下。
如何有錯誤的、或者有補充的請在評論區評論、我再改正與補充。
原創內容,轉載還望注明來源,謝謝。