1

(Javaでは)これは可能かもしれないし不可能かもしれませんが、近道/存在しにくいように見えるからだと思います。基本的に私がやりたいことは、ユーザーに状態の名前を挿入してもらい、別のクラスに保存されているその状態のカウンターに1つ追加することです。50 の if/else ステートメントを作成せずにこれを行いたいです。これは、私が期待する方法を表す疑似コードです。(このコードは mainclass.java の while ループにカプセル化され、カウンターと状態名は state.java という名前のクラスにあります。)

Scanner userstate = new Scanner(System.in);
String statename = userstate.nextLine();

state.(statename).counter++;

state.java:

 public state(int counter){
}
    public static state Alabama = new state(0);

時間のために、上記のようなショートカットがあることを願っています。

4

2 に答える 2

0

Java 名 (「Alabama」など) で変数を検索しようとするのは望ましくありません。これは可能ですが、対処したいよりもはるかに複雑です。

Multiset外部ライブラリを使用できる場合、これは特定の要素が何回表示されたかを追跡する Guava に最適です。それ以外の場合は、おそらくMap<String,Integer>州名からカウンターへの が必要です。put(get()+1)(その場合はそうしなければならないことに注意してください。動作し++ません。)

于 2013-09-29T02:41:00.273 に答える