1. 程式人生 > >Java基礎【04】常用API——String相關API

Java基礎【04】常用API——String相關API

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());
	}
}