0

最后的字符串邮政编码稍后在我的代码中用作输入,如您所见,它是硬编码的。我想做的是让它更有活力。所以 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

虽然与您的原始问题相切,而不是使用巨大的单行 if 语句,但使用 aMap来定义邮政编码的长度可能更容易。

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 回答