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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值