오류 자체가 실제로 문제가 어디에 있는지, 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 : 문자열 색인이 범위를 벗어 : D2.main (D2.java:19) –
위의 \t 오류 –