繁体   English   中英

我的数组仅打印出文件中的最后一个元素,我希望它打印出所有

[英]My Array is only printing out last element from file, I want it to print out all

我已将要点链接到stockData txt文件,并且程序在运行时显示了什么。 另外,我还不担心totalChangepercent返回0.0%,因为我还没有完成任务,但是我没有解决这个问题就没有进一步。

是的,这是一项家庭作业,但是我做了两个类似的作业,没有问题,所以我不确定还有什么要做。

编程运行:

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

Symbol: AAPL
Stock: Apple Inc
Previous Closing Price: $100.8
Current Price: $102.3
Total Change Percent: 0.0%

stockData.txt:

GPRO  
GoPro, Inc.
89.93
89.8773
SBUX
Starbucks
75.26
75.76
JCP
JC Penney
8.18
7.72
AMZN
Amazon
323.71
319.94
AE
Adams Resources and Energy
44.71
44.69
CEP
Constellation Energy Partners
3.38
3.35
KO
Coca-Cola
43.66
44.44
MCD
McDonald's
92.81
93.53
TSLA
Tesla Motors
259.28
264.57
AAPL
Apple Inc
100.80
102.30

public class Stock
{
private static String symbol;
private static String stockName;
private static double previousClosingPrice, currentPrice;
private static double totalChangePercent;
public Stock ()
{
    symbol = " ";
    stockName = " ";
    previousClosingPrice = 0.0;
    currentPrice = 0.0;
} //end default

public Stock(String symbol, String stockName, double previousClosingPrice, double currentPrice)
{
    this.symbol = symbol;
    this.stockName = stockName;
    this.previousClosingPrice = previousClosingPrice;
    this.currentPrice = currentPrice;
} //end overloaded

//setters

public void setSymbol(String symbol)
{
    symbol = symbol;
}  //end setSymbol();

public void setStock(String stockName)
{
    stockName = stockName;
}  //end setStock();

public void setPreviousclosingPrice(double previousClosingPrice)
{
    previousClosingPrice = previousClosingPrice;
}  //end setPreviousclosingPrice();

public void setCurrentPrice(double currentPrice)
{
    currentPrice = currentPrice;
}  //end setCurrentPrice();

//getters

public String getSymbol()
{
    return symbol;
} //end getSymbol();

public String getStockName()
{
    return stockName;
} //getStock();

public double getPreviousClosingPrice()
{
    return previousClosingPrice;
} //end getPreviousClosingPrice()

public double getCurrentPrice()
{
    return currentPrice;
} //end getCurrentPrice()

public static double getChangePercent()
{
    totalChangePercent = ((currentPrice - previousClosingPrice) / previousClosingPrice);

    return totalChangePercent;
} //end getChangePercent();

public boolean equals(Stock bool)
{
    if(symbol.equals(bool.getSymbol()) && stockName.equals(bool.getStockName()) && previousClosingPrice == bool.getPreviousClosingPrice() && currentPrice == bool.getCurrentPrice())
      {
        return true;
      } else
      {
        return false;
      }
}

public String toString()
{
    String str = " ";
    str += "\nSymbol: " + symbol + "\nStock: " + stockName;
    str += "\nPrevious Closing Price: $" + previousClosingPrice + "\nCurrent Price: $" + currentPrice;
    str += "\nTotal Change Percent: " + totalChangePercent + "%";

    return str;
}
}




import java.util.*;
import java.io.*;
import java.text.*;

public class StockDriver
{
public static void main(String args[]) throws IOException
{
    Stock [] stockData = new Stock [10];

    setStockData(stockData);
    displayStockData(stockData);
    displayImprovedStocks(stockData);
} //end main

public static void setStockData(Stock [] stockData) throws IOException
{

    File fileIn = new File("stockdata.txt");
    Scanner scan = new Scanner(fileIn);

    if(!fileIn.exists())
    {
        System.out.println("No file found!");
        System.exit(0);
    } //end if -- ends check

    String symbol, stockName;
    double previousClosingPrice, currentPrice;
    int i = 0;

    while(scan.hasNext()&& i < stockData.length)
    {
        symbol = scan.nextLine();
        stockName = scan.nextLine();
        String postPriceStr = scan.nextLine();
        String currentPriceStr = scan.nextLine();
        previousClosingPrice = Double.parseDouble(postPriceStr);
        currentPrice = Double.parseDouble(currentPriceStr);
        stockData[i] = new Stock(symbol, stockName, previousClosingPrice, currentPrice);
        i++;
    } //end while
} //end setStockData()

public static void displayImprovedStocks(Stock [] stockData)
{
    DecimalFormat decFor = new DecimalFormat("#0.00");
    double totalImproved = 0.0;
    double postImproved = 0.0;
    double doMath = 0.0;

    for (int i = 0; i < stockData.length; i++)
    {
        postImproved += stockData[i].getPreviousClosingPrice();
        if (postImproved >= stockData[i].getCurrentPrice())
        {
            doMath = postImproved;
        } else
        {
            System.out.println(" ");
        } //end

        totalImproved = doMath;
        System.out.println("\nImproved Stocks: " + decFor.format(totalImproved));
    }


}
public static void displayStockData(Stock [] stockData)
{
    for(int i = 0; i <= stockData.length; i++)
    {
        System.out.println(stockData[i]);
    }
}
}

您所有的类变量都是静态的-意味着它们在该类的所有实例之间共享。 而是尝试让它们像这样:

public class Stock
{
private String symbol;
private String stockName;
private double previousClosingPrice, currentPrice;
private double totalChangePercent;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM