0

末尾の文字列 postcode は、後のコードで入力として使用されます。ご覧のとおり、ハードコーディングされています。私がやりたいことは、それをより動的にすることです。したがって、boolean pc4 は、4 桁の郵便番号を受け入れる国に設定されます。pc5 は 5 桁、pc6 は 6 桁です。

私がやりたいことは次のようなものです:

if(pc4==true){String postcode="1234"}

ご存知のように、これは if ステートメントの外では機能しません。

私の質問は、if ステートメントの外側で文字列を更新できますか、それとも必要な場所に到達するためのより効率的な方法はありますか?

String state1 = "state";

 boolean pc4 = (bString.equals("Bahrain") || bString.equals("Afghanistan") 
             || bString.equals("Albania") || bString.equals("Armenia") 
             || bString.contains("Australia")
             ... 
             || bString.equals("Tunisia") ||bString.equals("Venezuela") );
 boolean pc5 = (bString.equals("Alan Islands") || bString.equals("Algeria")
             || bString.equals("American Samoa") || bString.equals("Wallis and Futuna") 
             ...
             || bString.equals("Zambia"));
 boolean pc6 = (bString.equals("Belarus") || bString.equals("China")
             || bString.equals("Colombia") || bString.equals("India")
             ...
             || bString.equals("Turkmenistan") || bString.equals("Viet Nam"));

 String postcode = "123456";
4

4 に答える 4

6

ブロックの外側で定義postcodeし、条件に基づいて値を割り当てます。

以下のようなもの:

  String postcode="";


 if(pc4){postcode="1234"}
于 2012-08-30T14:21:46.383 に答える
2

元の質問に接している間は、巨大な1行のifステートメントを使用するよりも、aを使用しMapて郵便番号の長さを定義する方が簡単な場合があります。

HashMap<String, Integer> countries = new HashMap<>();
countries.add("Bahrain", 4);

switch(countries.get(myCountry)) {
  case 4:
    // Stuff!
}
于 2012-08-30T14:26:13.420 に答える
1

三項条件演算子を使用します。

String postcode = pc4 ? "1234" : "";
于 2012-08-30T14:24:55.050 に答える
0
String postcode = null; // or ""
if (pc4)
  postcode = "1234";
else if (pc5)
  postcode = "12345";
else if (pc6)
  postcode = "123456";
else
  postcode = "default value";
于 2012-08-30T14:23:29.827 に答える