雖然我明白,錯誤本身確實告訴我問題出在哪裏,它在D2.main(D2.java:19)或第19行即時通訊無法弄清楚究竟是什麼問題。我試圖通過使用split(「:」)來遍歷文件,以便以良好整潔的格式打印文件中的所有信息。雖然獲得其他信息不是一個問題,但從中獲得社會安全號碼似乎產生了相當頭痛的問題。下面是我的代碼和任何指針或幫助將非常感激!爲此工作了更多的小時,然後id喜歡承認,並希望它的第二雙眼睛可能指出一些愚蠢的東西,我可以感覺後來沒有意識到愚蠢。謝謝!Java.Lang.StringIndexOutOfBoundsException:字符串索引超出範圍:5
import java.util.Scanner;
import java.io.*;
public class D2
{
public static void main(String[] args)throws FileNotFoundException
{
String categories, sections[];
int x;
Scanner reader = new Scanner(new FileReader(args[0]));
PrintWriter outputfile = new PrintWriter(args[1]);
while(reader.hasNext())
{
categories = reader.nextLine();
sections = categories.split(":");
String social = sections[3];
String k, l, p;
k = social.substring(0,3);
l = social.substring(3,5);
p = social.substring(5);
String ssn = k + "-" + l + "-" + p;
String top = ("Student Name SSN DOB CURR GRAD YR");
String middle = ("------------ --- --- ---- -------");
String bottom = (sections[0] + " " + ssn + " " + sections[4] + " " + sections[1] + " " + sections[2]);
outputfile.println(top + "\n" + middle + "\n" + bottom);
outputfile.close();
reader.close();
}
}
}
約翰·瓊斯:987-65-4321:1956年3月12日:ELT:2005 費城約翰:876-54-3219:1989年12月15日:CIS:2003 威廉·斯威尼:768- 45-2768:01-03-1990:MAS:2006 Terry Hundred:734-85-9437:04-15-1965:BAD:2001 Susan Pine:489-37-2637:08-08-1988:INS: 2007
上面是我嘗試讀取的文本文件,輸出文件的名稱並不重要。
String social = sections[3]; //equals ELT
java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:5 \t在java.lang.String.substring(未知來源) \t在D2.main(D2.java:19) –
以上是錯誤 –