android学习笔记24--------------字符串问题(不断更新)

转载请注明出处:http://blog.csdn.net/yf210yf

一、字符串分割

在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧。
如执行:"2|33|4".split("|")

出来的结果是:

""

2

|

3

3

|

4

奇怪吧,不过注意看一下API说明还是知道原因的.

 

java.lang.string.split 
split 方法 
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 
stringObj.split([separator,[limit]]) 
参数 
stringObj 
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。 
separator 
可选项。字符串或 正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 
limit 
可选项。该值用来限制返回数组中的元素个数。

说明 
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解

 

所以正常的写法是这样的:

1、如果用“.”作为分隔的话,必须是如下写法:String.split("//."),这样才能正确的分隔开,不能用String.split(".");
2、如果用“|”作为分隔的话,必须是如下写法:String.split("//|"),这样才能正确的分隔开,不能用String.split("|");
“.”和“|”都是转义字符,必须得加"//";
3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 and b =2 or c=3”,把三个都分隔出来,可以用String.split("and|or");


例如:

aaa bbb ccc  
截取后 "aaa""bbb""ccc"三个字符串
可以:
 String temps ="aaa bbb ccc"; 

 String arrays[] = temps.split(" "); 

 for(int i=0;i<arrays.length;i++) 

 System.out.print(arrays[i]+" ");


二、字符串替换

String temp = "22235aa33ee3399cceee0088kk";
                System.out.println(temp.replaceAll("[a-zA-Z]+",""));
以上的是把字母去掉 

System.out.println(temp.replaceAll("[^a-zA-Z0-9]+",""));

只保留字母和数字,将其他字符去掉


public String substring (int start, int end)

再看VC中Mid()函数的定义:

CString Mid( int nFirst, int nCount )

第一个参数start(nFirst)没啥问题,关键是第二个参数end(nCount),说明如下:

“end”是指字符串的物理位置,而“nCount”是指取几个字符,例如:

java(android):

String a1="123456789";

String a2=a1.substring(2,7);

a2结果是:"34567";




原文链接: http://blog.csdn.net/yf210yf/article/details/7268893

你可能感兴趣的:(android学习笔记24--------------字符串问题(不断更新))