首页 > 编程知识 正文

通达信cost函数详解,100个pandas函数详解

时间:2023-05-05 19:53:09 阅读:198278 作者:4537

最近在解决android 中listview的查找问题,用到了indexOf 方法,仔细看了下源码,详解如下。

private static int indexOf(String source, String target, int fromIndex) { final int sourceLength = source.length(); final int targetLength = target.length();//1、当开始查找位置 大于等于 源字符串长度时,如果[查找字符串]为空,则: //返回字符串的长度,否则返回-1. if (fromIndex >= sourceLength) { return (targetLength == 0 ? sourceLength : -1); } //2、如果fromIndex 小于 0,则从 0开始查找。 if (fromIndex < 0) { fromIndex = 0; } //3、如果[查找字符串]为空,则返回fromIndex if (targetLength == 0) { return fromIndex; } //4、开始查找,从[查找字符串]中得到第一个字符,标记为first char first = target.charAt(0);//4.1、计算出源字符串最大开始查找的位置 int max = (sourceLength - targetLength); //4.2、遍历查找 for (int i = fromIndex; i <= max; i++) { /* Look for first character. *///4.2.1、从[源字符串]中,查找到目标字符串每个字母的 first 的位置,找不到直接返回-1结束 if (source.charAt(i)!= first) { while (++i <= max && source.charAt(i) != first); } /* Found first character, now look at the rest of v2 *///4.2.2、如果在[源字符串]中,找到首个[目标字符串],则开始匹配整个[目标字符串] if (i <= max) {//4.2.2.1、得到下一个要匹配的位置,标记为j int j = i + 1;//4.2.2.2、得到其余[目标字符串]的长度,标记为end,当j=end时表示目标字符串匹配完成 int end = j + targetLength - 1;//4.2.2.3、遍历,其余[目标字符串],从k开始, //如果j不越界(小于end,表示:其余[目标字符串]的范围), //同时[源字符串]==[目标字符串],则 //自增,继续查找匹配。直至完成所有匹配 for (int k = 1; j < end && source.charAt(j)== target.charAt(k); j++, k++); //4.2.2.4、如果j与end相等,则表示: //源字符串中匹配到目标字符串,匹配结束,返回i。 if (j == end) { /* Found whole string. */ return i; } } }//其余情况,返回-1.表示没有匹配到目标字符串 return -1; }

一、indexOf函数简介
indexOf是String.java中的一个方法,用于返回[目标字符串]在[源字符串]中的位置。

1、indexOf:返回特定子字符串第一次在源字符串中的位置。如果源字符中不存在目标字符,则返回-1。

二、indexOf函数两种用法和实现功能说明

1、 indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。
2、indexOf(String str, int index): 返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。

举例说明: String str = "01234567890123456789";System.out.println(str.indexOf("123"));System.out.println(str.indexOf("123",5));  

上面程序的结果为1和11。第1个输出函数中的indexOf()方法只有一个参数,故返回123在str中第一次出现处的索引,为1;第1个输出函数中的indexOf()方法有两个参数,第一个参数为要查找的字符串123,第2个参数为从第5所以位置处开始查找,故只能查找到str中的第2个123,返回其出现的起始索引,为11。

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。