0

入力を取得して配列に格納するのに問題があります。私は、ユーザーが自分の株のキャピタルゲインを購入、売却、または計算したい場合に入力する証券取引所タイプのプログラムを作成しています。したがって、基本的に、入力はスキャナーを使用して取得され、変数に格納されます。次に、パラメーター内の変数を使用してメソッドを呼び出し、3つの部分に分割できるように解析します。

私の入力は、文字列要素とそれに続く整数型の値で構成されます。したがって、これは、プログラムの開始時に私の入力がどのようになるかを示しています。

B 20300

これは、私が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 に答える