(ActionScript3.0笔记)ActionScript3.0变量类型-字符串类型
ActionScript3.0中的变量类型分为两大类:一类是标量数据类型,一类是复合数据类型。标量数据类型包括:int,uint,Number,String,Date;复合数据类型包括:Array和Object。
字符串类型的标识是String,要声明一个变量为字符串类型,必须显式的指定变量的类型为String:
var myname:String = 'senir';
|
将变量指定为字符串类型后,变量的赋值只能是字符串类型的。字符串类型的值就是由字符组成的串,这些字符包括英文字母,标点符号,中文等。
将字符串类型的值赋给变量时,字符串类型的值必须放进引号(英文半角)对里,单引号对或者双引号对都可以。如:
var student:String = '张三'; var sentence:String = "英文单词car的中文解释是汽车。";
|
单引号或者双引号总是成对出现,以单引号开始就以单引号结束,以双引号开始就以双引号结束。
字符转义
如果字符串本身就含有双引号或者单引号怎么办呢?
聪明的做法是:如果字符串本身有单引号就把她放进双引号中,如果字符串本身有双引号那么就放进单引号中。如:
var sentence2:String = "It's a bird";
|
但是如果一个字符串本身既有单引号,又有双引号呢?比如有这么一个字符串:It's a bird.读的时候重音要放在"bird"上。
要将这个字符串值赋给变量,应该是放在单引号对还是双引号对中呢?很显然都不行,这种情况下就需要对字符进行转义。
字符串转义就是告诉编译器这是一个特殊含义的字符,不能当做平常的字符一样对待。比如上面的那个变量赋值:
var sentence2:String = "It's a bird";
|
编译器在编译的时候,先是读var,知道这是要声明一个变量,然后后面跟着的是变量名sentence2,然后是冒号,加变量类型String,然后读到=,知道后面要对这个变量赋值,然后读到双引号,知道这是字符串值的开始,然后读到又一个双引号,知道这是字符串值结束了,然后是;,知道整个变量赋值语句结束了。
假如写成下面的格式会怎么样呢?
var sentence2:String = "It's "a bird";
|
当编译器读到第一个双引号的时候,知道这是字符串值的开始,然后接着读,接下来的都是字符串值,It's ,这时读到一个双引号,编译器会以为字符串的值结束了,接下来就应该是;表示整个变量赋值语句结束了,但是却读到了一个a,编译器认为这个语句不合规则,将会发出一个错误警告。
如果想让编译器通过检查,则必须对a前面的那个双引号进行转义,转义的字符需要在字符前面加\。如:
var sentence2:String = "It's \"a bird";
|
编译器读到\"的时候就会知道,哦,这是一个特殊的字符,如果按平常的话编译器会理解成字符串值的结束,但是\"编译器就会知道,这是一个"字符,而不是字符串的结束。所以那个既有单引号又有双引号的字符串值可以这样赋给变量:
var sentence3:String = "It's a bird.读的时候重音要放在\"bird\"上。";
|
或者
var sentence3:String = 'It\'s a bird.读的时候重音要放在"bird"上。';
|
重要的转义字符
\r 回车
\n 换行
\t 制表符TAB
\r代表回车,比如我们打开记事本输入文本的时候,我们会采用一定的格式。比如我们写信的时候,通常会第一行顶格写某某某:然后回车,另起一行退两格写你好!我们按键盘上回车的时候,看到换行了,没有看到有字符输出,其实有字符,只不过是不可见的,那就是\r\n,存储的时候会写入,我们看不到是因为记事本这个软件将它解析了,然后变成我们可见的“换行”了。
那么我们想让字符串变量的值也带上这种格式怎么办呢?其实很简单,只要给字符串值加上这些转义字符就可以了。如:想让某某某:你好!这个字符串带上像写信那样的格式,这么写就行:
var message:String = '某某某:\r\n\t你好!';
|
将这个变量通过ActionScript3.0编译器存成文本的话,跟上面通过记事本编写的格式是一样的。
综上:将变量声明为字符串类型的变量,那么变量的值必须是字符串类型的。字符串类型的值必须放入单引号对或者双引号对中。如果字符串值本身就含有单引号或者双引号,那么需要进行转义。转义字符有\',\",\r,\n,\t。
阅读(2392) | 评论(0) | 转发(0) |