0

我在获取输入并将其存储到数组中时遇到了一些困难。我正在制作一个证券交易所类型的程序,如果用户想要购买、出售或计算其股票的资本收益,他们将进入该程序。所以基本上输入将被使用扫描仪接收并将其存储到变量中。然后它会调用一个方法,使用参数中的变量并对其进行解析,以便将其拆分为 3 个部分。

我的输入将包含一个字符串元素,后跟整数类型值。所以这就是我的输入在程序启动时的样子:

乙 20 300

这意味着我将以 300 美元的价格购买 20 股。有没有办法让我将所有这些首先作为一个字符串存储到一个数组中,然后将索引 1 和 2 处的值转换为一个 int?我真的很感激一些帮助,以便我可以开始工作。这就是我一直在尝试做的事情:

import java.util.Scanner;
import java.util.StringTokenizer;

public class StockTran {
static String command = "";
String[] stockParts = null;
CircleArrayQueue Q = null;

public StockTran(String inputCommand) {
    try {
        this.stockParts = this.parseInput(command);
        System.out.println(stockParts[0]);
        System.out.println(stockParts[1]);
        System.out.println(stockParts[2]);
    } catch (Exception e) {
        e.printStackTrace();
    }
}


private String[] parseInput(String inputLine) throws Exception {
    String[] temp = inputLine.split("\\s");
    return temp;
}

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    System.out.println("Enter 'B' to purchase share, 'S' to sell share, 'C' for capital gain, or 'Q' to quit: ");
    command = reader.next();

    StockTran tran = new StockTran(command);
}

}

4

2 回答 2

2

您需要阅读完整的行以传递给构造函数以拆分为元素:

command = reader.nextLine();

作为

command = reader.next(); 

只会读取第一个令牌。

于 2012-09-22T22:20:09.083 回答
0
import java.util.Scanner;
public class tcs {

/**
 * @param args
 */
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String customerDetails = scanner.nextLine();
    String string[]=customerDetails.split("\\s");
    for (int i = 0; i < string.length; i++) {
        System.out.println(string[i]);
    }
    //System.out.println(string[0]);
    //System.out.println(string[1]);
    //System.out.println(string[2]);
    int total=Integer.parseInt(string[1])*(Integer.parseInt(string[2]));
    System.out.println(total);
    }
}
于 2014-03-15T07:45:20.790 回答