for循环中的substring()导致"StringIndexOutOfBoundsException:String index超出范围:-1"

Ben*_*tis 0 java for-loop substring

public class Asterisk
{
    public static void main(String[] args)
    { 
        String output="";
        int count=1, input;

        System.out.println("Input the size of the triangle from 1 to 50:");
        input = 5;

        for(count=1;count <= input;count++)
        {   
                    output += "*";
            System.out.println(output);
        }

        input -= 1;

        for(count =input;count <= input;count--)
        {   
                    output = output.substring(0,count);
            System.out.println(output);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码正确编译,并且也正确运行.但是在输出的底部它会输出一个错误说:

线程"main"中的异常java.lang.StringIndexOutOfBoundsException:

字符串索引超出范围:-1

    at java.lang.String.substring(String.java:1937)

    at Asterisk.main(Asterisk.java:18)
Run Code Online (Sandbox Code Playgroud)

谁能解释这种奇怪的行为?谢谢!

Dar*_*ron 5

只要值<=输入,您的第二个for循环就会从"输入"开始倒计时.这包括-1(可能更多的负数).你可能想要"for(count = input; count> 0; count - )