split()
메서드를 사용하여 문자열과 정수를 배열에서 분리하려고 시도했지만 작동하지 않습니다.배열에서 split() 분리 문자열 및 삽입 사용
나는 surname = list[1];
라고하는 7 행의 인덱스 오브 바운드 예외를 얻었으며 그 이유는 무엇인지 모르십니까?
내가하고자하는 것은 각 요소를 나눠서 정수의 평균을 구하는 것이므로 파일의 첫 번째 텍스트 줄은 Mildred Bush 45 65 45 67 65와 내가 쓰는 새 텍스트 줄을 읽습니다. 새로운 파일은 Bush, Mildred : Final score는 x.xx입니다.
나는 이것을 오랫동안 시도해 왔지만 지금은 제대로 작동하지 않을 수 있습니다.
내 코드 : 그것은 Genio
을 말한다
public static void splitTest()
{
String forename, surname, tempStr, InputFileName, OutputFileName, nextLine;
int sum = 0;
float average;
//forename = "Mildred";
//surname = "Bush";
nextLine = "";
tempStr = "";
String[] list = tempStr.split(" ");
String[] list = new String[12];
forename = list[0];
surname = list[1];
int[] scores = new int[5];
scores[0] = Integer.parseInt(list[2]);
scores[1] = Integer.parseInt(list[3]);
scores[2] = Integer.parseInt(list[4]);
scores[3] = Integer.parseInt(list[5]);
scores[4] = Integer.parseInt(list[6]);
FileReader fileReader = null;
BufferedReader bufferedReader = null;
FileOutputStream outputStream = null;
PrintWriter printWriter = null;
clrscr();
// Prompt user for input filename
System.out.println("Please enter the name of the file that is to be READ (e.g. details.txt) : ");
InputFileName = Genio.getString();
// Prompt user for output filename
System.out.println("Please enter the name of the file that is to be WRITTEN TO (e.g. newDetails.txt) : ");
OutputFileName = Genio.getString();
try {
// Open input file
fileReader = new FileReader(InputFileName);
bufferedReader = new BufferedReader(fileReader);
// Open output file
outputStream = new FileOutputStream(OutputFileName);
printWriter = new PrintWriter(outputStream);
// Read a line
tempStr = bufferedReader.readLine();
// While there are lines in the input file
while (tempStr != null) {
String[] list;
list = tempStr.split(" ");
surname = list[0];
forename = list[1];
int[] scores = new int[5];
scores[0] = Integer.parseInt(list[2]);
scores[1] = Integer.parseInt(list[3]);
scores[2] = Integer.parseInt(list[4]);
scores[3] = Integer.parseInt(list[5]);
scores[4] = Integer.parseInt(list[6]);
for(int i=0; i < scores.length; i++){
sum = sum + scores[i];
average = (float)sum/scores.length;
// Print it to screen
System.out.println(tempStr);
// Write it to the output file + a new-line
printWriter.write(tempStr +"\n");
// Read a line
tempStr = bufferedReader.readLine();
System.out.println("\n\nYOUR NEW FILE DATA IS DISPLAYED ABOVE!\n\n");
pressKey();
// Close the input file
bufferedReader.close();
// Close the output file
printWriter.close();
}
}
, 사용자 입력을 다루는이 클래스. 고맙습니다!
가 작동하지 않습니다 빈 문자열 따라서 공간에 의해 분할되는 경우 결과 배열의 길이는 1입니다. –
@ La-comadreja 나는 그것이 실제로는 문제가 아닌 것을 묘사하는 것이라고 가정합니다. – StackFlowed
나는 그것을 시도했다. 그러나 나는 아직도 오류를 얻고있다. 정수를 파싱하는 다른 하나의 작업은 처음이나 while 루프에 있어야합니까? – DarkBlueMullet