| OLD | NEW | 
|---|
| 1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library services.src.correction.strings; | 5 library services.src.correction.strings; | 
| 6 | 6 | 
| 7 import 'dart:math'; | 7 import 'dart:math'; | 
| 8 | 8 | 
| 9 /** | 9 /** | 
| 10  * "$" | 10  * "$" | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 34   } | 34   } | 
| 35   if (a == null) { | 35   if (a == null) { | 
| 36     return 1; | 36     return 1; | 
| 37   } | 37   } | 
| 38   if (b == null) { | 38   if (b == null) { | 
| 39     return -1; | 39     return -1; | 
| 40   } | 40   } | 
| 41   return a.compareTo(b); | 41   return a.compareTo(b); | 
| 42 } | 42 } | 
| 43 | 43 | 
|  | 44 int countLeadingWhitespaces(String str) { | 
|  | 45   int i = 0; | 
|  | 46   for (; i < str.length; i++) { | 
|  | 47     int c = str.codeUnitAt(i); | 
|  | 48     if (!isWhitespace(c)) { | 
|  | 49       break; | 
|  | 50     } | 
|  | 51   } | 
|  | 52   return i; | 
|  | 53 } | 
|  | 54 | 
| 44 /** | 55 /** | 
| 45  * Counts how many times [sub] appears in [str]. | 56  * Counts how many times [sub] appears in [str]. | 
| 46  */ | 57  */ | 
| 47 int countMatches(String str, String sub) { | 58 int countMatches(String str, String sub) { | 
| 48   if (isEmpty(str) || isEmpty(sub)) { | 59   if (isEmpty(str) || isEmpty(sub)) { | 
| 49     return 0; | 60     return 0; | 
| 50   } | 61   } | 
| 51   int count = 0; | 62   int count = 0; | 
| 52   int idx = 0; | 63   int idx = 0; | 
| 53   while ((idx = str.indexOf(sub, idx)) != -1) { | 64   while ((idx = str.indexOf(sub, idx)) != -1) { | 
| 54     count++; | 65     count++; | 
| 55     idx += sub.length; | 66     idx += sub.length; | 
| 56   } | 67   } | 
| 57   return count; | 68   return count; | 
| 58 } | 69 } | 
| 59 | 70 | 
|  | 71 int countTrailingWhitespaces(String str) { | 
|  | 72   int i = 0; | 
|  | 73   for (; i < str.length; i++) { | 
|  | 74     int c = str.codeUnitAt(str.length - 1 - i); | 
|  | 75     if (!isWhitespace(c)) { | 
|  | 76       break; | 
|  | 77     } | 
|  | 78   } | 
|  | 79   return i; | 
|  | 80 } | 
|  | 81 | 
| 60 /** | 82 /** | 
| 61  * Returns the number of characters common to the end of [a] and the start | 83  * Returns the number of characters common to the end of [a] and the start | 
| 62  * of [b]. | 84  * of [b]. | 
| 63  */ | 85  */ | 
| 64 int findCommonOverlap(String a, String b) { | 86 int findCommonOverlap(String a, String b) { | 
| 65   int a_length = a.length; | 87   int a_length = a.length; | 
| 66   int b_length = b.length; | 88   int b_length = b.length; | 
| 67   // all empty | 89   // all empty | 
| 68   if (a_length == 0 || b_length == 0) { | 90   if (a_length == 0 || b_length == 0) { | 
| 69     return 0; | 91     return 0; | 
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 246   } | 268   } | 
| 247   if (isEmpty(separator)) { | 269   if (isEmpty(separator)) { | 
| 248     return ''; | 270     return ''; | 
| 249   } | 271   } | 
| 250   int pos = str.lastIndexOf(separator); | 272   int pos = str.lastIndexOf(separator); | 
| 251   if (pos == -1) { | 273   if (pos == -1) { | 
| 252     return str; | 274     return str; | 
| 253   } | 275   } | 
| 254   return str.substring(pos + separator.length); | 276   return str.substring(pos + separator.length); | 
| 255 } | 277 } | 
| OLD | NEW | 
|---|