J2SE_String类的indexOf(String s)方法抛异常

一、问题

s == null时,抛空指针异常。

二、示例代码

public class TestDemo {

	public static void main(String[] args) {
		
		String str = "aaa" + "|" + "bbb" + "|" + "ccc";
		String s1 = " ";
		String s2 = "";
		String s3 = null;
		Integer idx1 = str.indexOf(s1);
		Integer idx2 = str.indexOf(s2);
		try {			
			Integer idx3 = str.indexOf(s3);
		} catch(Exception e) {
			e.printStackTrace();
			System.out.println("indexOf()的参数不可以为null,否则抛NullPointerException!");
		}
		System.out.println("str-->idx of s1: " + idx1);
		System.out.println("str-->idx of s2: " + idx2);
		
	}
}
输出结果:

java.lang.NullPointerException
at java.lang.String.indexOf(String.java:1734)
at java.lang.String.indexOf(String.java:1716)
at TestDemo.main(TestDemo.java:17)
indexOf()的参数不可以为null,否则抛NullPointerException!
str-->idx of s1: -1
str-->idx of s2: 0

三、结论

类似的其他类的方法,可能就是没有注意其参数不可以为null,导致抛java.lang.NullPointerException异常。


你可能感兴趣的:(JavaSE,String,indexOf)