JAVA中startsWith()和endsWith()遇到的问题,程序如下:                  String s="Hello";
String str[]=new String[2];
str[1]="Hello";
str[2]="World";

if (str.startsWith("H"))
{
System.out.println(str[1]);
}
编译时会出错。
但是把 if (str.startsWith("H")) 改成 if (s.startsWith("H")时
编译可以通过但运行程序时会出错,什么原因啊?

解决方案 »

  1.   

    String str[]=new String[2];
    str[1]="Hello";
    str[2]="World";
    JAVA的下标与C/C++一样,要从0开始
    这样就可以:
    String str[]=new String[2];
    str[0]="Hello";
    str[1]="World";
      

  2.   

    另外:
    startsWith是String的方法,不是String []的方法
      

  3.   

    String str[]=new String[2];str[1]="Hello";str[2]="World";这个就有问题,只能用str[0],str[1],str[2]就已经越界了。startsWith是String的函数,str是String数组,当然不能用。
      

  4.   

    1 数组是从0下标开始的 这个没有问题吧 new String[2]创建了可以装两个String对象的数组 是[0] 和[1]2startsWith是String的方法,不是String []的方法你可以这样啊 for( int  i = 0; i < str.length;i++)
                {
                   if(str[i].startWith("H"))
                     System.out.println(str[i]);
                }