Chromium Code Reviews| Index: sdk/lib/core/string.dart |
| diff --git a/sdk/lib/core/string.dart b/sdk/lib/core/string.dart |
| index 799a2a96837e06652a54cb6cfb6b243d1ebea063..12f6790dc50ffad8ff712cf5b3c0a252f892a6b1 100644 |
| --- a/sdk/lib/core/string.dart |
| +++ b/sdk/lib/core/string.dart |
| @@ -326,6 +326,78 @@ abstract class String implements Comparable<String>, Pattern { |
| String trim(); |
| /** |
| + * Creates a new string that repeats this string a number of times. |
| + * |
| + * If [separator] is provided, it is insert between the copies |
|
floitsch
2014/02/19 10:20:36
it is inserted
Lasse Reichstein Nielsen
2014/02/19 11:43:16
Done.
|
| + * of this string. |
| + * |
| + * The [times] number must be non-negative. |
| + */ |
| + String repeat(int times, [String separator = ""]); |
|
floitsch
2014/02/19 10:20:36
Do we really need this one?
The only good use-cas
Lasse Reichstein Nielsen
2014/02/19 11:43:16
If we have padLeft, you can do str.repeat(n) by do
|
| + |
| + /** |
| + * Pads this string on the left if it is shorther than [newSize]. |
| + * |
| + * For each position the length of this string is shorter than [newSize], |
| + * a copy of [padding] is added on the left. |
| + * If the length of this string is already greater than [newSize], |
| + * this string is returned unmodified. |
| + * |
| + * If [padding] has length greater than 1, |
| + * the resulting string's length will be greater than [newSize]. |
| + * This can be used for cases where the logical length of a string |
| + * is not its length in code points. |
| + * Example: |
| + * |
| + * "foo".padLeft(10, " "); // String representing single space. |
| + * "foo".padLeft(10, "\u{100002}"); // Surrogate pair character. |
| + * |
| + * If [size] is provided, it is used as instead of `this.length` |
| + * as the size of this string. |
| + * If the string contains, for example, surrogate pairs, |
| + * and it is intended to be treated as charaters, not code points, |
| + * [size] can be used to provide the logical length. |
| + * Example: |
| + * |
| + * "D&D".padLeft(10, " ", size: 3); |
| + * |
| + * The [size] number must be non-negative. |
| + * If [newSize] is negative, no padding will happen. |
| + */ |
| + String padLeft(int newSize, String padding, { int size }); |
|
floitsch
2014/02/19 10:20:36
I'm not convinced that dealing with surrogate pair
Søren Gjesse
2014/02/19 10:44:10
I find the option of padding with size larger than
Lasse Reichstein Nielsen
2014/02/19 11:43:16
This is not (just) dealing with surrogate pairs. I
|
| + |
| + /** |
| + * Pads this string on the right if it is shorther than [newSize]. |
| + * |
| + * For each position the length of this string is shorter than [newSize], |
| + * a copy of [padding] is added on the right. |
| + * If the length of this string is already greater than [newSize], |
| + * this string is returned unmodified. |
| + * |
| + * If [padding] has length greater than 1, |
| + * the resulting string's length will be greater than [newSize]. |
| + * This can be used for cases where the logical length of a string |
| + * is not its length in code points. |
| + * Example: |
| + * |
| + * "foo".padRight(10, " "); // String representing single space. |
| + * "foo".padRight(10, "\u{100002}"); // Surrogate pair character. |
| + * |
| + * If [size] is provided, it is used as instead of `this.length` |
| + * as the size of this string. |
| + * If the string contains, for example, surrogate pairs, |
| + * and it is intended to be treated as charaters, not code points, |
| + * [size] can be used to provide the logical length. |
| + * Example: |
| + * |
| + * "D&D".padLeft(10, " ", size: 3); |
| + * |
| + * The [size] number must be non-negative. |
| + * If [newSize] is negative, no padding will happen. |
| + */ |
| + String padRight(int newSize, String padding, {int size}); |
| + |
| + /** |
| * Returns true if this string contains a match of [other]: |
| * |
| * var string = 'Dart strings'; |