java學習之字符串的截取

先說一下我的方法:

1、getChars()方法截取多個字符

2、substring()方法截取子串

3、StringTokenizer()  截取字符串

4、Split()方法截取字符串


下面逐一舉例說明:

1、getChars(  ) 截取多個字符

void getChars(int sourceStart,int sourceEnd,char target[ ],int targetStart)

int sourceStart:子串開始字符的下標

int sourceEnd:子串結束後的下一個字符的下標

char target[  ]:接收所截取的字符串的數組

int targetSyart:開始複製子串的下標值


public class getCharsTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "I love china,my motherland!";
		char buffer[] = new char[20];
		str.getChars(2, 7, buffer, 0);
		
		for(char i : buffer){
			System.out.println(i);
		}
	}
}

其結果爲:

l
o
v
e

2、substring()方法截取字符串

String substring(int beginIndex)

String substring(int beginIndex,int endIndex)

對於單參數的substring()方法,截取將會從指定索引處的字符開始,一直截到字符串結束

對於雙參數的substring ()方法,截取將會從自定索引處的字符開始,一直截到指定索引的字符的上一個字符,也就是第endIndex-1個字符,所以截取的字符串的長度爲endIndex-1-(beginIndex-1)

下面我們做一個實驗:

public class substringTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "I love china,my motherland!";
		
		String tempStr1 = str.substring(2);
		String tempStr2 = str.substring(2, 12);
		
		System.out.println("tempStr1 :"+tempStr1);
		System.out.println("tempStr2 :"+tempStr2);
		
	}

}

其輸出爲:

tempStr1 :love china,my motherland!
tempStr2 :love china


上述兩種方法只能算得上是對字符串的簡單的截取,下面來介紹更高大上的方法!


3、StringTokenizer()方法,此方法可以將一個字符串按照你的要求分解爲一個一個的單詞或者是標記


【示例  1】

import java.util.StringTokenizer;

public class stringTokenizerTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringTokenizer stz = new StringTokenizer("I love china,my motherland!", "n");
		while(stz.hasMoreElements()){  
			 System.out.println("Token:" + stz.nextToken());  
			 }  
	}

} 


截取結果爲:

Token:I love chi
Token:a,my motherla
Token:d!

上面見到了StringTokenizer中經常用到的兩個方法,hasMoreElements(),用來判斷是否還有下一個子串,nextElement()返回StringTokenizer的下一個標記

StringTokenizer有三個構造方法

(1)StringTokenizer(String str)   默認以"\t\n\r\f"爲分隔符

示例:

import java.util.StringTokenizer;

public class stringTokenizerTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringTokenizer stz = new StringTokenizer("I love china,my motherland!");
		while(stz.hasMoreElements()){  
			 System.out.println("Token:" + stz.nextToken());  
			 }  
	}

}

輸出:

Token:I
Token:love
Token:china,my
Token:motherland!

(2)StringTokenizer(String str,String delim),此構造方法指定denim爲分隔符,示例請看  【示例 1】

(3)StringTokenizer(String str,String denim,boolean returnDelims)  returnDelim決定分隔符是否也未標記,即是否返回分隔符。

示例:

import java.util.StringTokenizer;

public class stringTokenizerTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringTokenizer stz = new StringTokenizer("I.love.china,my.motherland!",".,",true);
		while(stz.hasMoreElements()){  
			 System.out.println("Token:" + stz.nextToken());  
			 }  
	}

}

輸出:

Token:I
Token:.
Token:love
Token:.
Token:china
Token:,
Token:my
Token:.
Token:motherland!

4、String.Split()方法截取字符串

String.Split()方法有六個重載函數,如下:

public String[] Split(char[ ] separator)

public String[] Split(char[ ] separator,int count)

public String[] Split(char[ ] separator,StringSplitOptions option)

public String[] Split(String[ ] separator,StringSplitOptions option)

public String[] Split(char[ ] separator,int count,StringSplitOptions option)

public String[] Split(String[ ] separator,int count,StringSplitOptions option)


上述方法中 int count參數均表示將字符串分割成count個子串


初始化一個字符串 String str = "a.b.c.d.e.f..g"

str.Split(new char[ ]{"."}) 會返回{"a","b","c","d","e","f","","g"}


str.Split(new char[ ]{"."},2)會返回{"a","b.c.d.e.f..g"}


str.Split(new char[ ]{"."},StringSplitOptions.RemoveEntries)會返回{"a","b","c","d","e","f","g"},不保留空元素;

str.Split(new char[ ]{"."},StringSplitOptions.None)會返回{"a","b","c","d","e","f","","g"},保留空元素


str.Split(new String[ ]{"."},StringSplitOptions.RemoveEntries)會返回{"a","b","c","d","e","f","g"},不保留空元素;

str.Split(new String[ ]{"."},StringSplitOptions.None)會返回{"a","b","c","d","e","f","","g"},保留空元素


str.Split(new String[ ]{"."},2,StringSplitOptions.RemoveEntries)會返回{"a","b.c.d.e.f..g"},不保留空元素;

str.Split(new String[ ]{"."},10,StringSplitOptions.None)會返回{"a","b","c","d","e","f","","g"},保留空元素






請尊重勞動成果,轉載或使用請註明出處:

http://blog.csdn.net/qq_21163257/article/details/52148640

發佈了23 篇原創文章 · 獲贊 7 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章