Java基礎【04】常用API——String相關API
阿新 • • 發佈:2018-12-16
1.int length()
package string;
/**
* int length()
* 該方法可以返回當前字串的長度(字元個數)
* @author adminitartor
*
*/
public class LengthDemo {
public static void main(String[] args) {
String str = "我愛java!";
int len = str.length();
System.out.println("length:"+len);
}
}
2.char charAt(int index)
package string; /** * char charAt(int index) * 返回當前字串中指定位置處對應的字元 * @author adminitartor */ public class CharAtDemo { public static void main(String[] args) { // 0123456789012345 String str = "thinking in java"; char c = str.charAt(9); System.out.println(c); /* * 檢測迴文 * 上海自來水來自海上 * * 規則:正數位置上的字元與倒數位置上的字元都 * 一樣的則是迴文 */ String line = "上海自來水來海自上"; for(int i=0;i<line.length()/2;i++){ char c1 = line.charAt(i); char c2 = line.charAt(line.length()-1-i); if(c1!=c2){ System.out.print("不"); break; } } System.out.println("是迴文!"); } }
3.int indexOf(String str)
package string; /** * int indexOf(String str) * 查詢給定字串在當前字串中的位置。若當前字串不包含 * 給定內容,則返回值為-1. * @author adminitartor */ public class IndexOfDemo { public static void main(String[] args) { // 0123456789012345 String str = "thinking in java"; int index = str.indexOf("in"); System.out.println("index:"+index); /* * 過載方法允許從指定位置開始查詢第一次出現的位置 */ index = str.indexOf("in", 3); System.out.println("index:"+index); /* * 查詢給定字串在當前字串中最後一次出現的位置 */ index = str.lastIndexOf("in"); System.out.println("index:"+index); } }
4.String toUpperCase() 和 String toLowerCase()
package string; /** * 字串提供了可以將當前字串中的英文部分轉換為全 * 大寫或全小寫 * String toUpperCase() * String toLowerCase() * * @author adminitartor */ public class UpperLowerDemo { public static void main(String[] args) { String string = "我愛Java"; String upper = string.toUpperCase(); System.out.println("upper:"+upper); String lower = string.toLowerCase(); System.out.println("lower:"+lower); } }
5.boolean startsWith(String str) 和 boolean endsWith(String str)
package string;
/**
* String startsWith(String str)
* 判斷當前字串是否是以給定的字串開始的
*
* String endsWith(String str)
* 判斷當前字串是否是以給定的字串結尾的
*
* @author adminitartor
*/
public class StartsWithDemo {
public static void main(String[] args) {
String line = "thinking in java";
boolean starts = line.startsWith("think");
System.out.println("starts:"+starts);
boolean ends = line.endsWith("ava");
System.out.println("ends:"+ends);
}
}
6.String substring(int start,int end)
package string;
/**
* String substring(int start,int end)
* 擷取當前字串中指定範圍內的字串,在API中有一個
* 特點,凡是使用兩個數字表示範圍時,通常都是"含頭不含尾"
* 的。
* @author adminitartor
*
*/
public class SubstringDemo {
public static void main(String[] args) {
// 0123456789012
String str = "www.baidu.com";
//擷取域名
String sub = str.substring(4,9);
System.out.println(sub);
//一個引數的則是從指定位置擷取到末尾
sub = str.substring(4);
System.out.println(sub);
}
}
7.String trim()
package string;
/**
* String trim()
* 去除一個字串兩邊的空白字元
*
* @author adminitartor
*
*/
public class TrimDemo {
public static void main(String[] args) {
String string = " hello ";
System.out.println(string);
String trim = string.trim();
System.out.println(trim);
}
}
8.String String.valueOf(其他型別);
package string;
/**
* 字串提供了一組靜態的方法:valueOf
* 可以將其他型別轉換為字串。常用的是將基本型別轉換
* 為字串。
* @author adminitartor
*/
public class ValueOfDemo {
public static void main(String[] args) {
int i = 123;
String iString = String.valueOf(i);
System.out.println(iString);
iString = i+"";//任何內容與字串連線結果還是字串
double d = 123.123;
String dString = String.valueOf(d);
System.out.println(dString);
}
}
9.boolean matches(String regex)
package string;
/**
* 字串支援正則表示式方法一:
* boolean matches(String regex)
* 使用給定的正則表示式驗證當前字串是否滿足格式要求。
* 需要注意,這裡正則表示式無論是否加了邊界匹配符(^...$)
* 都是做全匹配驗證
* @author adminitartor
*/
public class MatchesDemo {
public static void main(String[] args) {
String mail = "[email protected]";
/*
* 郵箱的正則表示式:
* \[email protected]\w+(\.[a-zA-Z]+)+
*/
String regex = "\\[email protected]\\w+(\\.[a-zA-Z]+)+";
boolean check = mail.matches(regex);
if(check){
System.out.println("是郵箱");
}else{
System.out.println("不是郵箱");
}
}
}
10.String[] split(String regex)
package string;
/**
* 字串支援正則表示式方法二:
* String[] split(String regex)
* 將當前字串按照滿足正則表示式的部分進行拆分,並返回
* 拆分後的內容
* @author adminitartor
*
*/
public class SplitDemo {
public static void main(String[] args) {
String line = "abc123def456ghi789jkl";
/*
* 按照數字部分拆分
* 在拆分過程中若連續匹配了兩個可以拆分內容,那麼
* 中間就會拆分出一個空字串。但是若在字串末尾
* 連續匹配,那麼所有拆分出來的空字串都會忽略。
*/
String[] arr = line.split("[0-9]+");
System.out.println(arr.length);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
11.String replaceAll(String regex,String str)
package string;
/**
* 字串支援正則表示式的方法三:
* String replaceAll(String regex,String str)
* 將當前字串中滿足正則表示式的部分替換為給定字串。
* @author adminitartor
*/
public class ReplaceAllDemo {
public static void main(String[] args) {
String line = "abc123def456ghi789jkl";
/*
* 將當前字串中的數字部分替換為#NUMBER#
*/
line = line.replaceAll("[0-9]+", "#NUMBER#");
System.out.println(line);
}
}
12.StringBuilder類提供的增、刪、改、插方法
package string;
/**
* 字串的設計關注的是字串的重用,對於修改字串而言,
* 效率與資源消耗都比較大,為此字串不適合頻繁的修改。
* 對此,java提供了一個專門用於修改字串內容的類:
* StringBuilder。其內部維護一個可變的char陣列,所以修改
* 都是建立在一個StringBuilder物件上完成,不會反覆建立
* 新物件。並且其還提供了便於修改字串內容的相關方法,
* 包括的操作有:增,刪,改,插。
* @author adminitartor
*/
public class StringBuilderDemo1 {
public static void main(String[] args) {
//預設建立內部表示空字串
// StringBuilder builder = new StringBuilder();
String string = "努力學習java";
StringBuffer builder = new StringBuffer(string);
/*
* append():向當前字串末尾追加給定內容
*/
builder.append(",為了找個好工作!");
//獲取builder內部修改好的字串
string = builder.toString();
System.out.println(string);
/*
* replace():將當前字串指定範圍內的內容替換
* 為給定字串(修改部分內容)
*/
//努力學習java,為了找個好工作!
//努力學習java,就是為了改變世界!
builder.replace(9, 16, "就是為了改變世界");
System.out.println(builder.toString());
/*
* delete():刪除當前字串部分內容
*/
//努力學習java,就是為了改變世界!
//,就是為了改變世界!
builder.delete(0, 8);
System.out.println(builder.toString());
/*
* insert():將指定內容插入到指定位置
*/
//,就是為了改變世界!
//活著,就是為了改變世界!
builder.insert(0, "活著");
System.out.println(builder.toString());
}
}