C# String对像的方法属性
String对像的方法属性
String(字符串对象)
我不是高手阿,我只是想把这段写下来让大家看看,真的字符串对象真的很有用的.嘿,希望大家一起分享阿..
以下是对教程的段章取义,嘿嘿。
字符串对象是对字符型数据的封装,使用它可以对字符型数据进行管理。
但字符串对象的所有属性和方法几乎都可以直接用于字符串,因此,除非特殊需要,在一般情况下建议使用字符串代替字符串对象。
(字符串对象里除了concat,fromCharCode,slice和substr方法外,其他方法都可以直接用于字符串。)
把字符串和字符串对象的实例区分开来是很重要的,在下面的代码中,一个是创建了一个字符串a,一个是创建了字符串对象a2:
a="hello"//此为字符串类型,为string类型
a1=new String("hello")//此为字符串对象类型,为object类型
创建字符串对象要使用构造函数,语法是:
new String(value)
//其实我也不知道构造函数是什么,我也只是在创建新对象的时候前面用new 再加上要创建的类型string、Object Color,唉,我英语很差,所以我大部分用法都是比葫芦画瓢,有的我也不知道是什么。
myname=new String("flasher")
这就算创建了一个新的字符串对象myname,它的初始值为"flasher"
字符串对象的属性只有一个,就是length,用于测定字符串的长度,语法格式如下。就以刚才创建的新对象为例
myname.length
例如:
myname=new String("flasher")
trace(myname.length)
结果为:7
字符串对象的方法表:
charAt 返回字符串指定位置的字符
charCodeAt 返回字符串中指定位置字符的代码
concat 连接字符串
fromCharCode 用指这下代码的字符组成字符串
indexOf 查找并返回子串在父串中第一次出现的位置值
lastIndexOf 查找并返回子串在父串中最后一次出现的位置值
slice 取字符串的子串
split 分割字符串并存入数组中
substr 取字符串的子串,与slice功能相似,但参数指定方法不同
subString 取字符串的子串
toLowerCase 把字符串中的大写字母转换为小写字母
toUpperCase 把字符串中的小写字母转换成大写字母
方法具体用法:
1.charAt
语法为mystring.charAt(index)
参数index为字符串在mystring中的位置值。
例:
a=new String("ABCDEFG")
trace(a.charAt(1))
运行结果为B,字符串对象和数组对象一样,第一个字符的位置为0最后一个字符的位置为a.length-1
如果不好理解,可以这样,把a=new string("ABCDEFG")看成这样
比较一个
a=new String("ABCDEFG")
a=new String("0123456"),
这是对比的,上面是对符串对象内的内容,现面的是对比上面对象里每个字符所在的位置.他们是由零开始记录,所以
a=new String("ABCDEFG")的第一项是b,而并非a,因为他们是从零开始,所以他还有一个零项。0项为a,而最后一项的位置值责是string.length-1
比如:a=new String("ABCDEFG")的length为7.但他们是从零开始记录的,但他们的length(长度)就是按里面所放的内容计算,这个例子里有七个字母,所以他们长度length就是7,但他的最后一个字符的位置值责是6因为他们是0123456这样计算的,所以最后一项位置值是6,所以他的位置值也可以写成length-1.
2、charCodeAt
此方法返回字符串中位置值为index的字符的代码,语法格式是:
mystring.charCodeAt(index)
返回的是ascII码,而不是字符。
例如:
mystring=new String("ABCDEFG")
trace(mystring.charCodeAt(1))
结果为66,这是字符B的ascii码值.
此方法我用的不多,我个人认为很少用到,所以这里说的也模糊简单一些。
3、concat
concat方法把参数中指定的值合并成一个新的字符串,语法格式如下:
mystring.concat(value1,value2,.....)
例:
mystring=new String("abcdefg")
newstr=mystring.concat(1,2,3)
trace(newstr)
结果为:abcdefg123,这是在他原有的内容后面再加上你所要加的量
注意的是,这只能用在新的一个字符串上,必须得用一个新变量来将原来的字符串值赋过来,比如:
mystring=new String("abcdefg")
mystring.concat(1,2,3)
trace(mystring)
这个就不会看到效果,必须得用一个新的变量来创建才能得到。
4、fromCharCode
方法用参数中指定的代码的对应字符组成新的字符串并返回该字符串的语法格式如下:str=String.fromcharCode(99,100,101)
这个方法好像和charCodeAt相对应的,个人感觉用处不太明显,可能是现在没用上吧,所以这里就不再明说.
5、indexOf
此方法可以查找子串在父串中第一次出现的位置,并返回该位置值。语法如下。
mystring.indexOf(substring,[startIndex])
参数substring是要查找的子串,可以是整数或字符串(是整数时也当作字符串看待)参数startIndex是可选的,为一个整数,用于指定开始查找子串的位置,即从父串的第几个字符开始查找。如果找到子串,则返回子串在主串中的位置值:如果找不到,则返回-1,例如:
str="abc 123 abc"
a=str.indexOf("abc")
b=str.indexOf(26)
c=str.indexOf("abc",3);
trace(a)
trace(b)
trace(c)
结果为:0,-1,8
第一个没有给定第二个参数即startIndex,所以他就会从第0个字符查起,abc在第0个字符时就出现了,所以,他所返回的就是从查到他的第一个字母的位置值算起,所以就等于0
第二个则是查找一个数字26,也没给定第二个参数,所以他也是从第0个字符查起,但里面没有26这个数字,所以找不到,就返回-1
第三个两个参数都给定了,第二个参数给的是3,所以他就会查abc这个字符,从第它的第三个位置值开始查起,虽然它在第一个字符就已经有了abc,但这里给定的是从第三个字符位开始查,所以他就忽略了以第三个字符以前的所有字符。这时在第8个字符位出现了abc这个字符,所以它就返回在从第三个位置值以后所查到的abc所在的位置值,注意。这里一个空格也算一个位置值。
6、lastIndexOf
此方法和indexOf的方法正好相反,indexOf是查他出现的第一次出现的位置值,而lastIndexOf则是查找父串中查找子串时扫描的结束位置。如果找到了子串,返回子串最后一次出现的位置值,如果没找到,则返回-1
列:
str="abc 123 abc"
a=str.lastIndexOf("abc")
这里如果不给最后的参数的话,则返回12,而如果换成
反正就这样理解吧,indexOf()就是从字符从前往后数,而lastIndexOf()就是从后往前数。这样理解吧,反正我是这样想的.
以前看到有论友问到怎么检查自己做的登陆界面中输入的用户名或密码有非法字符,用这个indexOf或lastIndexOf,正好可以解决做登陆界面所要检查非法字符的问题,以下是一个例子,里面有bug,但重要的是这个例子为为解释举出怎样检查非法字符,而非真正的登陆界面,再者,我也怕脚本写多了别人看了会晕,别说别人了,我看了都会晕,呵。你可以试着在里面输入我所设的非法字符看看效果.
7、slice
此方法是提取父串中的子串,两个参数
mystring.slice(start,[end])
start为开始提取的位置,end是可选的,为结束的位置
例:
str="1234567890"
a=str.slice(3,6)
b=str.slice(3)
c=str.slice(-8,6)
d=str.slice(-5,3)
trace一个看看结果。分别为
456 4567890 3456 " "
第一个a的开始点为3,所以就是从4开始提取,到第6个长度结束,也就是6。但结束点不包括在所提取的范围内,也就是结束点是6对应的字符应该是7,但结果却是6,因为结束点所在的字符不在提取的范围内.
8、split
此方法按定界符把字符串对象分割,并把分害虫得到的子字符串存入一个数组中,语法格式如下:
mystring.split("delimiter",[limit])
参数delimiter指定界符,如"123,456,7898"中的逗句就是他们当中的定界符
参数limit指定要放入数组中的项目数,此参数为可选的。
例:
mystring=new String("123,456,789")
myarray=mystring.split(",",2)
trace(myarray)得到的结果是123,456,这是按他们的定界符分割的,后面的参数为2,所以这里只把分割出来的前两个项目放到数组中,而忽略后面的789这第三个项目。
但如果不指定定界型,只是打了一个""那么,他就会把每一个字符都分割开来再放到数组中,例:
str=new String("12345")
myarray=str.split("")
trace(myarray)
得到的结果就是1,2,3,4,5
9、substr
此方法从父子符串中返回子串。语法格式为
mystring.substr(start,[length])
参数start指定指定回的子串在父串中的起始位置值,如果它是一个负数,就从字符串的末尾倒数,最后一个字符为-1参数length指定子串的长度,即包含的字符数。如果没有指定length,返回的子串包含从start开始到字符末尾的所有字符。
例:
str="1234567890"
a=str.substr(3,6)
b=str.substr(3)
c=str.substr(-8,6)
trace(a)
trace(b)
trace(c)
得到的结果为:a=456789 b=4567890 c=345678
a的起始点为3,即数字4开始提取,后面的参数为6,也就是说,从难从4开始提取6个字符,也就是456789,
b只给了起始点,没给结束点,所以他就会提取起始点以后的所有字符,即4567890
c起始点给了一个-8,所以应该从后往前数,最后一个字符为-1,往前查,-8为3,所以起始点就是3,而结束点也是6,所以就从3往后查6个字符即可。
可能我说的会误导大家,书上其实不是这么定的,最后的不是什么结束点,而是length,提取的东西所包括的数量,数量是6就从起始点往后查6个字符,如果不够,就忽略。
10、substring
此方法从字符串中返回子字串,格式如下:
mystring.subing(from,to)
参数from指定子串在父串中的起始位置值,该值的有效范围是0到mystring,length-1。如果from是一个负值,则使用0,参数to指定子串在父串中的结束位置,该值应该是结束字符的位置值+1。如果此参数没有,则使用string.length,取起始字符开始到字符串末尾的全部字符;如果此参数是一个负值,则使用0,如果参数to和from相等,则返回空串,如果from大于to,则该方法会先交换from和to的值再取串,
例:
str="1234567890"
a=str.substring(3,5)
b=str.substring(5)
c=str.substring(8,1)
trace(a)
trace(b)
trace(c)
trace(a)
结果为:a=45,b=67890 ,c=2345678
a开始点为3即为数字4开始,结束点为5即数字6,但此参数结束点也不在被提取的范围内,所以就是5所以结果就为45
b开始点为5没结束点,所以就提取从5即数字6开始往后的所有项。
c开始点为8即为数字9,结束点为1即数字2,这时开始点比结束点大,所以他就是交换两个的项,此时就变成了
c=str.substring(1,8)
再从1也就是数字2开始提取,到8也就是数字9结束。但结束点并不在被提取的范围内,所以就应该是8所以就等于
2345678
11、toLowerCase
此方法把字符串对象mystring所有大写字母转换为小写并返回转换后的字符串,但并不改变原串。
mystring.toLowerCase()
例:
str=new String("ABCDEFG")
a=str.toLowerCase()
trace(a)
结果就是:abcdefg
12、toUpperCase
此方法把字符中对象的string所有小写字母转成大写,并返回转换后的字符串,但并不改变原串。格式如下:
str=new String("abcdefg")
a=str.toUpperCase()
trace(a)
就等于:ABCDEFG
效果和toLowerCase效果正好相反
实例:
字符串对象的有些方法确实不错,比如说以下的一个例子,就是用到了字符串对象某些特有的方法和字符串方法的结合运用做出来的效果。