JavaSE8基础 String indexOf 正向 从指定索引值开始查找 字符在字符串中第一次出现的位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE8基础 String indexOf 正向 从指定索引值开始查找 字符在字符串中第一次出现的位置相关的知识,希望对你有一定的参考价值。



    os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)
    
    
code:

package jizuiku.t00;

public class Demo4 {
	public static void main(String[] args) {
		
		//     索引值      0123
		String str = "abc01234543210cba";
		char ch = ‘0‘;
		System.out.println(str.indexOf(ch,3));//包括索引值为3的字符
		
		//那样是指定索引值大于字符串长度呢?
		System.out.println(str.indexOf(ch,20));//返回-1,看了源代码懂了
	}
}

 


result:

技术分享

 

scoureCode:

    public int indexOf(int ch, int fromIndex) {
        final int max = value.length;
        if (fromIndex < 0) {
            fromIndex = 0;
        } else if (fromIndex >= max) {
            // Note: fromIndex might be near -1>>>1.
            return -1;
        }

        if (ch < Character.MIN_SUPPLEMENTARY_CODE_POINT) {
            // handle most cases here (ch is a BMP code point or a
            // negative value (invalid code point))
            final char[] value = this.value;
            for (int i = fromIndex; i < max; i++) {
                if (value[i] == ch) {
                    return i;
                }
            }
            return -1;
        } else {
            return indexOfSupplementary(ch, fromIndex);
        }
    }

 

    


Java优秀,值得学习。
学习资源:API手册+Java源码。










以上是关于JavaSE8基础 String indexOf 正向 从指定索引值开始查找 字符在字符串中第一次出现的位置的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE8基础 String 通过构造方法 将一维char数组化为String

JavaSE8基础 String 将char数组的一部分转为String

JavaSE8基础 String 通过构造方法 将一维byte数组化为String

JavaSE8基础 String String.valueOf 将字符数组转成字符串

JavaSE8基础 StringBuffer toString 将其转为String对象

JavaSE8基础 String concat与+ 连接两个字符串