簡體   English   中英

似乎無法找出問題所在

[英]Cannot seem to find what is wrong

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;

public class Salaries
{
   public static void main(String[] args) throws FileNotFoundException 
   {
      String filename = args[0];
      Scanner in = new Scanner(new File(filename));


      int sum = 0;

      in.nextLine();

      while(in.hasNextLine())
      {
        int totalSalary = 0; 

        String line = in.nextLine();
        String[] lineArray = in.nextLine().split("\\s+");

        for(int i = 0; i <= lineArray[i].length(); i++)
        {
            String arrayInts = lineArray[i];

            if(lineArray[i].contains("$"))
                {


                  arrayInts = arrayInts.replace("$","");
                  arrayInts = arrayInts.replace(",","");
                  totalSalary = Integer.parseInt(arrayInts);
                  sum = sum + totalSalary;
                }  
         }        

       }
      System.out.printf("$%,d\n",sum);
      sum = 0;




    }
}

我不明白為什么我不斷收到越界錯誤。 我的代碼應該通過一個文本文件並收集數字並創建總數。

下面的文本文件:

Campus President Salary Housing Auto Allowance
Bakersfield Horace Mitchell $285,000 $50,000 $12,000
Channel Island Richard R. Rush $275,000 $60,000 $12,000
Chico Paul J. Zingg $279,500 $50,000 $12,000
Dominguez Hills Mildred Garcia $295,000 provided $12,000
East Bay Mohammad H. Qayoumi $276,055 $60,000 $12,000
Fresno John Welty $299,000 provided $12,000
Fullerton Milton A. Gordon $295,000 provided $12,000
Humboldt Rollin C. Richmond $297,870 $50,000 $12,000
Long Beach F. King Alexander $320,329 provided $12,000
Los Angeles James Rosser $325,000 $60,000 $12,000
Maritime William B. Eisenhardt $258,680 provided $12,000
Monterey Bay Diane F. Harrison $270,315 provided $12,000
Northridge Jolene Koester $295,000 provided $12,000
Pomona J. Michael Ortiz $292,000 provided $12,000
Sacramento Alexander Gonzalez $295,000 $60,000 $12,000
San Bernardino Albert K. Karnig $290,000 $50,000 $12,000
San Diego Stephen L. Weber $299,435 provided $12,000
San Francisco Robert A. Corrigan $298,749 $60,000 $12,000
San Jose Don W. Kassing $328,209 provided $12,000
San Luis Obispo Jeffrey D. Armstrong $350,000 $60,000 $12,000
San Marcos Karen S. Haynes $270,568 $60,000 $12,000
Sonoma Ruben Arminaña $291,179 $60,000 $12,000
Stanislaus Hamid Shirvani $270,000 $50,000 $12,000

我懷疑你在這行代碼上越界了:

for(int i = 0; i <= lineArray[i].length(); i++)

(我不應該在這里猜測;問題的詳細信息應該在您的原始帖子中。)

首先,您可能想要針對lineArray.length進行測試,而不是lineArray[i].length() (這是lineArray的特定String元素的lineArray )。 其次,您應該使用i < ...而不是i <= ... 數組的實際長度不是數組的合法索引。

因此,將該行更改為:

for(int i = 0; i < lineArray.length; i++)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM