這裏是我與我在代碼中出現溢出錯誤,但我似乎無法修復它,有什麼建議嗎?
import java.io.*;
import java.util.Scanner;
class Main{
public static void main (String str[]) throws IOException {
Scanner scan = new Scanner (System.in);
int c = 0;
int d = 0;
System.out.println("please enter the first string");
String q = scan.nextLine();
int b = q.length();
int asterisk = q.indexOf('*');
while(c < b-1)
{
c++;
if (q.charAt(c) == '*')
{
d++;
break;
}
}
if(d<1)
{
System.out.println("Error: no *");
}
else
{
System.out.println("Enter the replacement string");
}
String rep = scan.nextLine();
System.out.println(q.substring(0,q.indexOf('*')) + rep + q.substring(asterisk+1,b));
}
}
工作代碼和我收到
Exception in thread "main" java.lang.StringIndexOutOfBoundsException:
String index out of range: 22
at java.lang.String.charAt(String.java:658)
at Main.main(Main.java:282)
at Ideone.assertRegex(Main.java:125)
at Ideone.test(Main.java:45)
at Ideone.main(Main.java:28)
我想這已經是與我使用的charAt的錯誤,儘管我如何解決此問題 我對編碼頗爲陌生,所以有可能會有一些簡單的解決方法,我可以忽略 如果有人可以幫忙的話,將不勝感激
我喜歡堆棧跟蹤怎麼說的錯誤是在管線282,但你的代碼甚至無法靠近那麼久。 – Charlie
你的格式也很糟糕。你能修好縮進和大括號嗎? – markspace