求教大佬,本人用eclipse做了个习题(如图所示第二题)出现不能运行(一直调试)显示切换当前指令指针

图片说明

public class teststring {
    public static void main(String args[]) {
        int size01=0;
        String strings[]= {"string","starting","street","stir","studeng","soft","string"};
        for(int n=0;n<8;n++) {
            boolean b=strings[n].startsWith("st");
            if(b==true) {
                size01+=1;
            }   
        }
        System.out.println(size01); 
    }

}

遍历集合时长度不能固定,而应该是从集合对象中获取。

public static void main(String[] args) {
        int size01 = 0;
        String strings[] = { "string", "starting", "street", "stir", "studeng", "soft", "string" };
        for (int n = 0; n < strings.length; n++) {
            boolean b = strings[n].startsWith("st");
            if (b) {
                size01 += 1;
            }
        }
        System.out.println(size01);
        System.out.println(strings.length);

    }

结果是有6个st开头的词,总共集合数7.
此外boolean类型就是if判断的依据,所以不需要b==true。

你这都没个语法高亮, 确认保存当前文件为 java扩展名的文件了?

下标最多到6吧,循环到7了?

你的数组长度为7,所以越界

public static void main(String[] args) {
        int size01 = 0;
        String strings[] = { "string", "starting", "street", "stir", "studeng", "soft", "string" };
        for (String str : strings) {
            if (str.startsWith("st")) {
                size01++;
            }
        }
        System.out.println(size01);
    }