# HG changeset patch # User bchristi # Date 1393448525 28800 # Node ID 7d5ecb31115f87b2e20e9b36e1e5d0c3038fd9ba # Parent c1aebf9d16a9f55289bd9dc31983a91980934217 8027640: String.indexOf(String,int) for the empty string case not specified Summary: Spec & wording clean up of indexOf(), lastIndexOf() Reviewed-by: psandoz diff -r c1aebf9d16a9 -r 7d5ecb31115f jdk/src/share/classes/java/lang/AbstractStringBuilder.java --- a/jdk/src/share/classes/java/lang/AbstractStringBuilder.java Wed Feb 26 16:18:08 2014 +0000 +++ b/jdk/src/share/classes/java/lang/AbstractStringBuilder.java Wed Feb 26 13:02:05 2014 -0800 @@ -1285,18 +1285,17 @@ /** * Returns the index within this string of the first occurrence of the - * specified substring. The integer returned is the smallest value - * k such that: + * specified substring. + * + *

The returned index is the smallest value {@code k} for which: *

{@code
-     * this.toString().startsWith(str, k)
+     * this.toString().startsWith(str, k)
      * }
- * is {@code true}. + * If no such value of {@code k} exists, then {@code -1} is returned. * - * @param str any string. - * @return if the string argument occurs as a substring within this - * object, then the index of the first character of the first - * such substring is returned; if it does not occur as a - * substring, {@code -1} is returned. + * @param str the substring to search for. + * @return the index of the first occurrence of the specified substring, + * or {@code -1} if there is no such occurrence. */ public int indexOf(String str) { return indexOf(str, 0); @@ -1304,38 +1303,39 @@ /** * Returns the index within this string of the first occurrence of the - * specified substring, starting at the specified index. The integer - * returned is the smallest value {@code k} for which: + * specified substring, starting at the specified index. + * + *

The returned index is the smallest value {@code k} for which: *

{@code
      *     k >= Math.min(fromIndex, this.length()) &&
      *                   this.toString().startsWith(str, k)
      * }
- * If no such value of k exists, then -1 is returned. + * If no such value of {@code k} exists, then {@code -1} is returned. * - * @param str the substring for which to search. + * @param str the substring to search for. * @param fromIndex the index from which to start the search. - * @return the index within this string of the first occurrence of the - * specified substring, starting at the specified index. + * @return the index of the first occurrence of the specified substring, + * starting at the specified index, + * or {@code -1} if there is no such occurrence. */ public int indexOf(String str, int fromIndex) { return String.indexOf(value, 0, count, str, fromIndex); } /** - * Returns the index within this string of the rightmost occurrence - * of the specified substring. The rightmost empty string "" is + * Returns the index within this string of the last occurrence of the + * specified substring. The last occurrence of the empty string "" is * considered to occur at the index value {@code this.length()}. - * The returned index is the largest value k such that + * + *

The returned index is the largest value {@code k} for which: *

{@code
      * this.toString().startsWith(str, k)
      * }
- * is true. + * If no such value of {@code k} exists, then {@code -1} is returned. * * @param str the substring to search for. - * @return if the string argument occurs one or more times as a substring - * within this object, then the index of the first character of - * the last such substring is returned. If it does not occur as - * a substring, {@code -1} is returned. + * @return the index of the last occurrence of the specified substring, + * or {@code -1} if there is no such occurrence. */ public int lastIndexOf(String str) { return lastIndexOf(str, count); @@ -1343,18 +1343,20 @@ /** * Returns the index within this string of the last occurrence of the - * specified substring. The integer returned is the largest value k - * such that: + * specified substring, searching backward starting at the specified index. + * + *

The returned index is the largest value {@code k} for which: *

{@code
      *     k <= Math.min(fromIndex, this.length()) &&
      *                   this.toString().startsWith(str, k)
      * }
- * If no such value of k exists, then -1 is returned. + * If no such value of {@code k} exists, then {@code -1} is returned. * * @param str the substring to search for. * @param fromIndex the index to start the search from. - * @return the index within this sequence of the last occurrence of the - * specified substring. + * @return the index of the last occurrence of the specified substring, + * searching backward from the specified index, + * or {@code -1} if there is no such occurrence. */ public int lastIndexOf(String str, int fromIndex) { return String.lastIndexOf(value, 0, count, str, fromIndex); diff -r c1aebf9d16a9 -r 7d5ecb31115f jdk/src/share/classes/java/lang/String.java --- a/jdk/src/share/classes/java/lang/String.java Wed Feb 26 16:18:08 2014 +0000 +++ b/jdk/src/share/classes/java/lang/String.java Wed Feb 26 13:02:05 2014 -0800 @@ -1671,11 +1671,11 @@ * Returns the index within this string of the first occurrence of the * specified substring. * - *

The returned index is the smallest value k for which: - *

-     * this.startsWith(str, k)
-     * 
- * If no such value of k exists, then {@code -1} is returned. + *

The returned index is the smallest value {@code k} for which: + *

{@code
+     * this.startsWith(str, k)
+     * }
+ * If no such value of {@code k} exists, then {@code -1} is returned. * * @param str the substring to search for. * @return the index of the first occurrence of the specified substring, @@ -1689,11 +1689,12 @@ * Returns the index within this string of the first occurrence of the * specified substring, starting at the specified index. * - *

The returned index is the smallest value k for which: - *

-     * k >= fromIndex {@code &&} this.startsWith(str, k)
-     * 
- * If no such value of k exists, then {@code -1} is returned. + *

The returned index is the smallest value {@code k} for which: + *

{@code
+     *     k >= Math.min(fromIndex, this.length()) &&
+     *                   this.startsWith(str, k)
+     * }
+ * If no such value of {@code k} exists, then {@code -1} is returned. * * @param str the substring to search for. * @param fromIndex the index from which to start the search. @@ -1780,11 +1781,11 @@ * specified substring. The last occurrence of the empty string "" * is considered to occur at the index value {@code this.length()}. * - *

The returned index is the largest value k for which: - *

-     * this.startsWith(str, k)
-     * 
- * If no such value of k exists, then {@code -1} is returned. + *

The returned index is the largest value {@code k} for which: + *

{@code
+     * this.startsWith(str, k)
+     * }
+ * If no such value of {@code k} exists, then {@code -1} is returned. * * @param str the substring to search for. * @return the index of the last occurrence of the specified substring, @@ -1798,11 +1799,12 @@ * Returns the index within this string of the last occurrence of the * specified substring, searching backward starting at the specified index. * - *

The returned index is the largest value k for which: - *

-     * k {@code <=} fromIndex {@code &&} this.startsWith(str, k)
-     * 
- * If no such value of k exists, then {@code -1} is returned. + *

The returned index is the largest value {@code k} for which: + *

{@code
+     *     k <= Math.min(fromIndex, this.length()) &&
+     *                   this.startsWith(str, k)
+     * }
+ * If no such value of {@code k} exists, then {@code -1} is returned. * * @param str the substring to search for. * @param fromIndex the index to start the search from.