java中substring()、charAt()、indexOf() (2013-05-05-bd 写的日志迁移
substring
1. public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串,
该子字符串始于指定索引处的字符,一直到此字符串末尾。
参数:
beginIndex - 开始处的索引(包括)。
返回:
指定的子字符串。
例如:
"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
2. public String substring(int beginIndex,int length) 返回一个新字符串,它是此字符串的一个子字符串,
该子字符串从指定的 beginIndex 处开始, length:表示子字符串的长度。
参数:
beginIndex - 开始处的索引(包括)。
endindex 结尾处索引(不包括)。
返回:
指定的子字符串。
示例:
"hamburger".substring(4,8) returns "urge"
"smiles".substring(1,5) returns "mile"
3. <script type="text/javascript"> var str="Hello world!" document.write(str.substring(1,3)); </script>
// 上面返回字符串:"ell"; str.substring(1,1) // 返回e
str.substring(1) // 返回"ello world";
还有此函数中会出现奇怪的现象,当出现str.substring(5,0); 这又是怎么回事,
不过返回的是"hello", str.substring(5,1) // 返回"ello",截去了第一位,返回余下的.
可见substring(start,end),可以有不同的说明,即start可以是要返回的长度,end是所要去掉的多少个字符
(从首位开始).
char charAt(int n)得到参数n指定的位置上的单个字符。当前对象实体中的字符串序列的第一个位置为0,
第二个位置为1,以此类推。n的值必须是非负的一个数。
字符串调用charAt()方法,提取字符串中的某一个字符,例如:String st="123456" st.charAt(3)=4
比如"abcde"调用chatAt(0) 这个0就是该字符串中某一字符的索引返回a调用chatAt(1) 返回b.
System.out.println("az123z1234z12345z123456z1234567z12345678z449fk".indexOf('z',2));
str.indexOf(s1,index)
这个函数的用法是查找字符串中的字符 s1 从第 index 个开始查找,返回所在字符的索引是这个意思吗?
但是不明白为什么 indexOf('z',2) 和 indexOf('z',3) 返回的都是5呢,首先,indexOf('Z',2)的2代表的是从你的
字符串第3[请注意是3,它已经跳过了第一个Z]个字符开始找'Z'字符,找到后返回'Z'字符的位置,请注意,
这个时候返回的位置数 [你这里是5]又是从0位置开始计数的.所以indexOf('Z',3)找到的那个Z也是和
indexOf('Z',2) 找到的Z的位置是一样的.
例如:
String s ="java is a"+"platform independent language";
System.out.println("index of t="+s.indexOf('t')); // 12
System.out.println("last index of t="+s.lastIndexOf('t')); // 27
System.out.println("index of(t,10)="+s.indexOf('t',10)); // 12
System.out.println("last index of(t,60=)"+s.lastIndexOf('t',60)); // 27