Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * The String class represents character strings. Strings are | 6 * The String class represents character strings. Strings are |
| 7 * immutable. A string is represented by a list of 32-bit Unicode | 7 * immutable. A string is represented by a list of 16-bit UTF-16 |
| 8 * scalar character codes accessible through the [charCodeAt] or the | 8 * code units accessible through the [codeUnitAt] or the [codeUnits] |
| 9 * [charCodes] method. | 9 * methods. The corresponding Unicode code points are available with |
| 10 * [charCodeAt] or the [charCodes] method. | |
| 10 */ | 11 */ |
| 11 interface String | 12 interface String |
| 12 extends Comparable, Pattern, Sequence<String> | 13 extends Comparable, Pattern, Sequence<String> |
| 13 default _StringImpl { | 14 default _StringImpl { |
| 14 /** | 15 /** |
| 15 * Allocates a new String for the specified [charCodes]. | 16 * Allocates a new String for the specified 21 bit Unicode [codePoints]. |
| 16 */ | 17 */ |
| 17 String.fromCharCodes(List<int> charCodes); | 18 String.fromCharCodes(List<int> codePoints); |
| 18 | 19 |
| 19 /** | 20 /** |
| 20 * Gets the character (as [String]) at the given [index]. | 21 * Allocates a new String for the specified 16 bit UTF-16 [codeUnits]. |
| 22 */ | |
| 23 String.fromCodeUnits(List<int> codeUnits); | |
| 24 | |
| 25 /** | |
| 26 * Gets the Unicode character (as [String]) at the given [index]. This | |
| 27 * routine can return a single combining character (accent) that would | |
| 28 * normally be displayed together with the character it is modifying. | |
| 29 * If the index corresponds to the first of two UTF-16 surrogate pair | |
|
floitsch
2012/11/08 15:28:21
Update comment.
erikcorry
2012/11/15 13:28:25
Done.
| |
| 30 * code units then it will return a string containing the Unicode | |
| 31 * character corresponding to the pair. | |
| 21 */ | 32 */ |
| 22 String operator [](int index); | 33 String operator [](int index); |
| 23 | 34 |
| 24 /** | 35 /** |
| 25 * Gets the scalar character code at the given [index]. | 36 * Gets the 21 bit Unicode code point at the given [index]. Surrogate |
| 37 * pairs are handled as in [operator []]. | |
|
floitsch
2012/11/08 15:28:21
Update comment.
erikcorry
2012/11/15 13:28:25
Done.
| |
| 26 */ | 38 */ |
| 27 int charCodeAt(int index); | 39 int charCodeAt(int index); |
| 28 | 40 |
| 29 /** | 41 /** |
| 30 * The length of the string. | 42 * Gets the 16 bit UTF-16 code unit at the given index. |
|
floitsch
2012/11/08 15:28:21
Update comment (now same as [operator []]).
erikcorry
2012/11/15 13:28:25
Done.
erikcorry
2012/11/15 13:28:25
Done.
| |
| 43 */ | |
| 44 int codeUnitAt(int index); | |
| 45 | |
| 46 | |
| 47 /** | |
| 48 * The length of the string, measured in UTF-16 code units. | |
| 31 */ | 49 */ |
| 32 int get length; | 50 int get length; |
| 33 | 51 |
| 34 /** | 52 /** |
| 35 * Returns whether the two strings are equal. This method compares | 53 * Returns whether the two strings are equal. This method compares |
| 36 * each individual scalar character codes of the strings. | 54 * each individual UTF-16 code unit. No Unicode normalization is |
| 55 * performed (accent composition/decomposition). | |
| 37 */ | 56 */ |
| 38 bool operator ==(String other); | 57 bool operator ==(String other); |
| 39 | 58 |
| 40 /** | 59 /** |
| 41 * Returns whether this string ends with [other]. | 60 * Returns whether this string ends with [other]. |
| 42 */ | 61 */ |
| 43 bool endsWith(String other); | 62 bool endsWith(String other); |
| 44 | 63 |
| 45 /** | 64 /** |
| 46 * Returns whether this string starts with [other]. | 65 * Returns whether this string starts with [other]. |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 103 */ | 122 */ |
| 104 String replaceAll(Pattern from, String to); | 123 String replaceAll(Pattern from, String to); |
| 105 | 124 |
| 106 /** | 125 /** |
| 107 * Splits the string around matches of [pattern]. Returns | 126 * Splits the string around matches of [pattern]. Returns |
| 108 * a list of substrings. | 127 * a list of substrings. |
| 109 */ | 128 */ |
| 110 List<String> split(Pattern pattern); | 129 List<String> split(Pattern pattern); |
| 111 | 130 |
| 112 /** | 131 /** |
| 113 * Returns a list of the characters of this string. | 132 * Returns a list of the characters of this string. No string normalization |
| 133 * is performed so unprecomposed combining characters (accents) may be found | |
| 134 * in the list. | |
| 114 */ | 135 */ |
| 115 List<String> splitChars(); | 136 List<String> splitChars(); |
| 116 | 137 |
| 117 /** | 138 /** |
| 118 * Returns a list of the scalar character codes of this string. | 139 * Returns a list of the 21 bit Unicode code points of this string. |
| 119 */ | 140 */ |
| 120 List<int> get charCodes; | 141 List<int> get charCodes; |
| 121 | 142 |
| 122 /** | 143 /** |
| 144 * Returns a list of the 16 bit UTF-16 code units of this string. | |
| 145 */ | |
| 146 List<int> get codeUnits; | |
| 147 | |
| 148 /** | |
| 123 * If this string is not already all lower case, returns a new string | 149 * If this string is not already all lower case, returns a new string |
| 124 * where all characters are made lower case. Returns [:this:] otherwise. | 150 * where all characters are made lower case. Returns [:this:] otherwise. |
| 125 */ | 151 */ |
| 126 String toLowerCase(); | 152 String toLowerCase(); |
| 127 | 153 |
| 128 /** | 154 /** |
| 129 * If this string is not already all uper case, returns a new string | 155 * If this string is not already all uper case, returns a new string |
| 130 * where all characters are made upper case. Returns [:this:] otherwise. | 156 * where all characters are made upper case. Returns [:this:] otherwise. |
| 131 */ | 157 */ |
| 132 String toUpperCase(); | 158 String toUpperCase(); |
| 133 } | 159 } |
| 134 | 160 |
| 135 class _StringImpl { | 161 class _StringImpl { |
| 136 /** | 162 /** |
| 137 * Factory implementation of String.fromCharCodes: | 163 * Factory implementation of String.fromCharCodes. |
| 138 * Allocates a new String for the specified [charCodes]. | |
| 139 */ | 164 */ |
| 140 external factory String.fromCharCodes(List<int> charCodes); | 165 external factory String.fromCharCodes(List<int> codePoints); |
| 166 | |
| 167 /** | |
| 168 * Factory implementation of String.fromCodeUnits. | |
| 169 */ | |
| 170 external factory String.fromCodeUnits(List<int> codeUnits); | |
| 141 | 171 |
| 142 /** | 172 /** |
| 143 * Joins all the given strings to create a new string. | 173 * Joins all the given strings to create a new string. |
| 144 */ | 174 */ |
| 145 external static String join(List<String> strings, String separator); | 175 external static String join(List<String> strings, String separator); |
| 146 | 176 |
| 147 /** | 177 /** |
| 148 * Concatenates all the given strings to create a new string. | 178 * Concatenates all the given strings to create a new string. |
| 149 */ | 179 */ |
| 150 external static String concatAll(List<String> strings); | 180 external static String concatAll(List<String> strings); |
| 151 | 181 |
| 152 } | 182 } |
| OLD | NEW |