ActionScript 编程/第一部分/第三章/字符串
在上一节中,您了解了字符串和数字数据类型之间的区别。现在我们将详细分析字符串数据类型。以下是声明字符串变量的结构
var <name> = new String( [expression] );
参数 <name> 是您要声明的变量的名称,参数 [expression] 是您想要在创建变量时赋予它的值。
方法 | 描述 |
---|---|
charAt( <index> ) | 返回参数 <index> 指定位置的字符。 |
charCodeAt( <index> ) | 返回指定字符的代码。 |
concat( <val1>, …, <valN>) | 将字符串对象的 value 与参数组合,并返回新形成的字符串。 |
fromCharCode( <c1>, … <cN> ) | 返回由参数中的字符代码(ASCII 值)表示的字符组成的字符串 |
indexOf ( <strsearch>, [startindex] ) | 搜索字符串,并在调用字符串中返回在 [startindex] 或之后找到的 <strsearch> 的第一次出现的索引位置。 |
lastIndexOf( <strsearch>, [startindex] ) | 从右到左搜索字符串,并在调用字符串中返回在 [startindex] 之前找到的 <strsearch> 的最后一次出现的索引位置。 |
slice( <startindex>, [endindex] ) | 返回一个字符串,其中包括 <startindex> 字符和一直到(但不包括)[endindex] 字符的所有字符。 |
split( <separator>, [limit] ) | 通过在指定 <separator> 参数出现的地方将字符串对象分割成子字符串来分割字符串对象,并将子字符串返回到数组中。 |
substr( <startindex>, [length] ) | 返回字符串中从 <startindex> 参数中指定的索引到 [length] 参数中指定的字符数量的字符。 |
substring( <startindex>, [endindex] ) | 返回一个字符串,该字符串包含 <startindex> 和 [endindex] 参数指定的点之间的字符。 |
toLowerCase() | 返回字符串对象的副本,其中所有大写字符都转换为小写。 |
toUpperCase() | 返回字符串对象的副本,其中所有小写字符都转换为大写。 |
String.charAt( <index> );
此方法返回参数 <index> 指定位置的字符。字符串的第一个字符用 0 表示,因此如果要读取指定字符串的第一个字符,则必须将 0 作为 <index> 参数,要读取第三个字符,则必须将 2 作为 <index>。现在,让我们编写一个程序来获取字符串“hello”的第二个字符。
1. var tmpString = new String("hello");
2. trace(tmpString.charAt(1));
String.charCodeAt( <index> );
为了理解此方法的作用,您首先必须了解一些有关键盘和“ASCII 值”的知识。屏幕上打印的每个“符号”都有一个等效代码。例如,大写字母“A”的代码是 65。在“ASCII”美国标准中,有 127 个字符代码。世界上所有的计算机都支持 ASCII 标准。在这个字符集中(字符代码从 0 到 127),只有符号的标准代码。例如,符号“©”在 Microsoft® Windows® 中的代码是 165。在其他操作系统中,它可能是另一个代码。以下是符号与其等效代码的列表
# | 符号 | # | 符号 | # | 符号 | # | 符号 |
---|---|---|---|---|---|---|---|
0 | ? | 32 | [空格] | 64 | @ | 96 | ` |
1 | ? | 33 | ! | 65 | A | 97 | a |
2 | ? | 34 | " | 66 | B | 98 | b |
3 | ? | 35 | # | 67 | C | 99 | c |
4 | ? | 36 | $ | 68 | D | 100 | d |
5 | ? | 37 | % | 69 | E | 101 | e |
6 | ? | 38 | & | 70 | F | 102 | f |
7 | ? | 39 | ' | 71 | G | 103 | g |
8 | * * | 40 | ( | 72 | H | 104 | h |
9 | * * | 41 | ) | 73 | I | 105 | i |
10 | * * | 42 | * | 74 | J | 106 | j |
11 | ? | 43 | + | 75 | K | 107 | k |
12 | ? | 44 | , | 76 | L | 108 | l |
13 | * * | 45 | - | 77 | M | 109 | m |
14 | ? | 46 | . | 78 | N | 110 | n |
15 | ? | 47 | / | 79 | O | 111 | o |
16 | ? | 48 | 0 | 80 | P | 112 | p |
17 | ? | 49 | 1 | 81 | Q | 113 | q |
18 | ? | 50 | 2 | 82 | R | 114 | r |
19 | ? | 51 | 3 | 83 | S | 115 | s |
20 | ? | 52 | 4 | 84 | T | 116 | t |
21 | ? | 53 | 5 | 85 | U | 117 | u |
22 | ? | 54 | 6 | 86 | V | 118 | v |
23 | ? | 55 | 7 | 87 | W | 119 | w |
24 | ? | 56 | 8 | 88 | X | 120 | x |
25 | ? | 57 | 9 | 89 | Y | 121 | y |
26 | ? | 58 | : | 90 | Z | 122 | z |
27 | ? | 59 | ; | 91 | [ | 123 | { |
28 | ? | 60 | < | 92 | \ | 124 | |
29 | ? | 61 | = | 93 | ] | 125 | } |
30 | ? | 62 | > | 94 | ^ | 126 | ~ |
31 | ? | 63 | ? | 95 | _ | 127 ? |
?这些字符不受 Microsoft Windows 支持。
* *值 8、9、10 和 13 分别转换为退格键、制表键、换行符和回车符。它们没有图形表示,但根据应用程序的不同,可能会影响文本的视觉显示。
您将在以后了解此方法的用法。现在您必须知道这一点。现在,让我们编写一个程序来打印字符串“hello”中所有字符的代码。
1. var tmpString = new String("hello");
2. trace(tmpString.charCodeAt(0));
3. trace(tmpString.charCodeAt(1));
4. trace(tmpString.charCodeAt(2));
5. trace(tmpString.charCodeAt(3));
6. trace(tmpString.charCodeAt(4));
String.concat( <val1>, …, <valN> );
此方法将字符串对象的 value 与参数组合,并返回新形成的字符串。但请注意,它不会更改字符串,它只是返回它。此示例显示了此方法的用法
1. var tmpString = new String("Hello!!!");
2. tmpString = tmpString.concat(" How", " are", " you?");
3. trace(tmpString);
String.fromCharCode( <c1>, …, <cN> );
此方法返回由参数中的字符代码(ASCII 值)表示的字符组成的字符串。在此方法中,“String” 绝不能替换为字符串变量的名称,例如:“mystring.fromCharCode”,它必须保留为“String”。在这种情况下,“String” 代表字符串对象。以下示例创建了一个“hello”字符串
1. var tmpString = new String();
2. tmpString = String.fromCharCode(104,101,108,108,111);
3. trace(tmpString);
String.indexOf( <strsearch>, [startindex] );
此方法搜索您通过参数 <strsearch> 指定的字符串,并返回第一次出现的索引位置。如果未找到字符串,则返回 -1。例如,此代码在“tmpString”变量中搜索“ll”字符串,该变量的值为“hello”
1. var tmpString = new String("hello!!!");
2. trace(tmpString.indexOf("ll"));
“indexOf” 方法将返回 2,这意味着您要查找的字符串的开头位于字符 3 处(不要忘记字符串的第一个字符是 0)。参数 [startindex] 告诉 Flash 从指定字符开始搜索字符串。在以下示例中,“indexOf” 方法返回的值为 -1,这意味着未找到该字符串。
1. var tmpString = new String("hello!!!");
2. trace(tmpString.indexOf("ll",3));
String.lastIndexOf( <strsearch>, [startindex] );
此方法搜索参数 <strsearch> 指定的字符串,并返回其最后一次出现的的位置。如果未找到该字符串,则返回 -1。例如,此代码在“tmpString” 变量中搜索“ZZ” 字符串,该变量的值为“ZoZZooZZoZoZZ”。
1. var tmpString = new String("ZoZZooZZoZoZZ");
2. trace(tmpString.lastIndexOf("ZZ"));
“indexOf” 方法将返回 11,这意味着您要查找的字符串的开头(从字符串的末尾开始)位于字符 11 处(不要忘记字符串的第一个字符是 0)。参数 [startindex] 告诉 Flash 从指定字符开始搜索字符串。这意味着指定字符之后的那部分字符串不参与搜索过程。在以下示例中,“indexOf” 方法返回的值为 6
1. var tmpString = new String("ZoZZooZZoZoZZ");
2. trace(tmpString.lastIndexOf("ZZ",9));
String.slice( <startindex>, [endindex] );
此方法返回包含 <startindex> 字符和直到(但不包括)[endindex] 字符的所有字符的字符串。如果您没有指定 [endindex] 参数,则返回值将包含 <startindex> 字符和直到字符串末尾的所有字符的字符串。在此示例中,我们从字符串“How are you?” 中切出单词“How”。
1. var tmpString = new String("How are you?");
2. trace(tmpString.slice(0,3));
现在,让我们切出从 4 到字符串末尾的所有字符
1. var tmpString = new String("How are you?");
2. trace(tmpString.slice(4));
此方法将在讨论完数组数据类型后进行介绍。
String.substr( <startindex>, [length] );
此方法返回字符串中从 <startindex> 参数中指定的索引开始的字符,直到 [length] 参数中指定的字符数量。它与“slice” 方法几乎相同,但在此函数中,您指定要剪切的字符串的长度,而不是最后一个字符的索引。此示例说明了此方法的使用方式
1. var tmpString = new String("How are you?");
2. trace(tmpString.substr(4,3));
String.substring( <startindex>, [endindex] );
此方法返回一个字符串,该字符串包含 <startindex> 和 [endindex] 参数指定的点之间的字符。如果未指定 [endindex] 参数,则返回的字符串包含从点 <startindex> 到字符串末尾的字符。此示例说明了此方法的使用方式
1. var tmpString = new String("How are you?");
2. trace(tmpString.substring(0,2));
String.toLowerCase( );
此方法返回指定字符串的副本,其中所有大写字母都转换为小写字母。例如,字符串“Hello” 将转换为“hello”。
1. var tmpString = new String("Hello");
2. trace(tmpString.toLowerCase());
String.toUpperCase( );
此方法返回指定字符串的副本,其中所有小写字母都转换为大写字母。例如,字符串“Hello” 将转换为“HELLO”。
1. var tmpString = new String("Hello");
2. Trace(tmpString.toUpperCase());
String.length
此方法返回字符串的长度。例如,字符串“hello” 的长度将为 5
1. var tmpString = new String("hello");
2. trace(tmpString.length);