提问人:Scoder58 提问时间:12/6/2022 更新时间:12/6/2022 访问量:35
上次运行字符串循环时出现子字符串错误
Substring error on last run of string loop
问:
我制作此代码是为了从用户输入的字符串中制作一个三角形。
import java.util.Scanner;
public class NameTriangle
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter a word or phrase: ");
String name = keyboard.nextLine();
int b = 0;
int len2 = name.length();
int sub = 0;
int count = 0;
System.out.println("");
for(int len = name.length(); sub <= len; sub++)
{
String namesub = name.substring(sub, len-count);
int sublen = namesub.length();
for(int i = len2; b <= count + i - sublen; b += 3)
{
System.out.print(" ");
}
System.out.println(namesub);
b = 0;
count++;
}
}
}
**它完美地工作到最后一次循环。当它尝试循环上次出现此错误时:**
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 10, end 8, length 18
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3410)
at java.base/java.lang.String.substring(String.java:1883)
at NameTriangle.main(NameTriangle.java:16)
**我试图从子字符串中的 sub 和 len 中添加和减去 1,它要么在第一个循环上崩溃,出现与之前相同的错误,要么偏移字符串和循环,直到它到达最后一个循环并导致相同的错误。我尝试在第一个 for 循环中弄乱布尔语句,但在我输入字符串值后它什么也没运行。
我认为它非常接近工作,我只是忽略了一些简单的事情,但任何帮助将不胜感激。**
答: 暂无答案
评论