public int indexOf(String str, int fromIndex) {
return indexOf(value, offset, count,
str.value, str.offset, str.count, fromIndex);
}
/**
* Code shared by String and StringBuffer to do searches. The
* source is the character array being searched, and the target
* is the string being searched for.
*
* @param source the characters being searched.
* @param sourceOffset offset of the source string.
* @param sourceCount count of the source string.
* @param target the characters being searched for.
* @param targetOffset offset of the target string.
* @param targetCount count of the target string.
* @param fromIndex the index to begin searching from.
*/
static int indexOf(char[] source, int sourceOffset, int sourceCount,
char[] target, int targetOffset, int targetCount,
int fromIndex) {
if (fromIndex >= sourceCount) {//
return (targetCount == 0 ? sourceCount : -1);
}
if (fromIndex < 0) {//开始出小于0,则从0开始匹配
fromIndex = 0;
}
if (targetCount == 0) {
return fromIndex;
}
char first = target[targetOffset];
int max = sourceOffset + (sourceCount - targetCount);
for (int i = sourceOffset + fromIndex; i <= max; i++) {
/* Look for first character. */
if (source[i] != first) {
while (++i <= max && source[i] != first);
}
/* Found first character, now look at the rest of v2 */
if (i <= max) {
int j = i + 1;
int end = j + targetCount - 1;
for (int k = targetOffset + 1; j < end && source[j] ==
target[k]; j++, k++);
if (j == end) {
/* Found whole string. */
return i - sourceOffset;
}
}
}
return -1;
}
分享到:
相关推荐
- **String类**:Java中不可变的字符序列,广泛用于字符串操作,如`substring()`、`indexOf()`、`concat()`等。 - **Arrays类**:提供了对数组进行排序、复制、填充的操作,如`sort()`、`equals()`。 - **...
Java.lang.String类是Java语言中的一种基本数据类型,该类的定义、字段属性、构造方法、equals方法、hashCode方法、charAt方法、compareTo方法、concat方法、indexOf方法、replace方法、split方法、substring方法、...
- `indexOf(String str)`/`lastIndexOf(String str)`:查找子字符串的首次出现或最后一次出现的索引。 - `concat(String str)`:连接两个字符串。 - `compareTo(String anotherString)`:比较两个字符串的字典...
`String`类在JDK的源码中是用C++实现的,但其主要接口和方法都是在Java中定义和使用的。 通过以上知识点,我们可以更好地理解和使用Java中的`String`类,有效地处理字符序列并优化代码性能。在实际开发中,合理运用...
5. **字符串**:Java中的String类是不可变的,理解其特性和常用方法,如concat、substring、indexOf等。 6. **异常处理**:学习如何使用try-catch-finally结构来捕获和处理程序运行时可能出现的错误。 7. **集合...
5. **字符串操作**:Java中的String类是极其重要的,课程会讲解其特性和常用方法,如concat、substring、indexOf等。 6. **集合框架**:包括List、Set、Map接口和ArrayList、LinkedList、HashSet、HashMap等实现类...
6. **字符串处理**:Java中的String类是不可变的,学习其常用方法,如substring、concat、indexOf、replace等。 7. **集合框架**:学习List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如...
6. **字符串操作**:"day07"可能涉及Java中String类的常用方法,如concatenation、substring、indexOf等,以及StringBuilder和StringBuffer的使用。 7. **IO流与文件操作**:"day08"可能会讲解输入/输出流的概念,...
4. **字符串操作**:Java中的String类,字符串的常用方法如concat、substring、indexOf等。 5. **异常处理**:了解try-catch-finally语句,异常类层次结构,以及如何自定义异常。 6. **输入输出流**:掌握I/O流的...
indexOf():返回指定字符的索引。charAt():返回指定索引处的字符。replace():字符串替换。trim():去除字符串两端空白。split():分割字符串,返回一个分割后的字符串数组。getBytes():返回字符串的 byte 类型...
5. **字符串处理**:Java的String类提供了丰富的字符串操作方法,如concatenation、substring、indexOf等,学习者应熟悉其用法。 6. **异常处理**:Java通过try-catch-finally语句块进行异常处理,学习者需要知道...
- **String类**:深入理解String类的不可变性,常见方法如length()、charAt()、substring()、indexOf()等。 - **StringBuilder与StringBuffer**:对比String类,学习可变字符串的实现和使用。 - **正则表达式**:...
7. **字符串处理**:String类在Java中广泛使用,理解它的不可变性、方法如concat、substring、indexOf等,以及StringBuilder和StringBuffer的使用,对编写高效代码非常重要。 8. **函数式编程**:Java 8引入了...
7. **字符串**:Java中的String类是不可变的,理解其特性和常用方法,如concat()、substring()、indexOf()等。 接下来,随着“01_base”的深入,可能会涵盖: 8. **面向对象编程**:这是Java的核心,包括类、对象、...
String类在JDK 1.5中得到了优化,新增了`substring()`的高效实现,以及`compareToIgnoreCase()`、`indexOf()`等方法。 13. **编译器警告**: JDK 1.5的javac编译器增加了对过时API和未初始化变量的警告提示,帮助...
- 学习常用的字符串操作方法,如concat、substring、indexOf等。 8. **输入输出流**: - 了解IO流的分类:字节流和字符流,以及它们的读写操作。 - 掌握File类的使用,进行文件的创建、删除、重命名等操作。 - ...
7. **字符串处理**:学习String类的常用方法,如concat、substring、indexOf等。 8. **异常处理**:理解异常的概念,学习try-catch-finally语句的使用。 进阶篇则更深入地探讨了Java的高级特性: 1. **集合框架**...
提供了丰富的方法来处理字符串,如substring()、replace()、indexOf()等。 - **ArrayList 类**:实现了基于数组的列表接口,可以动态地改变其大小,适用于存储和检索大量数据的情况。 - **HashMap 类**:一种基于...
7. **字符串处理**:了解String类的常用方法,如concat、substring、indexOf、replace等,并比较StringBuilder和StringBuffer的异同。 8. **异常处理**:理解Java的异常处理机制,学习try-catch-finally语句块,...
5. **字符串处理**:Java中的String类提供了丰富的字符串操作方法,如concat、substring、indexOf、replace等,理解和熟练使用它们可以提高代码效率。 6. **输入/输出流**:Java的IO流用于处理数据的输入和输出,...