Java - 更新if语句中的字符串

时间:2012-08-30 14:20:42

标签: java

最后的字符串邮政编码在我的代码中稍后用作输入,正如您所看到的,它是硬编码的。我想做的是让它更有活力。因此布尔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 个答案:

答案 0 :(得分:6)

在块外定义postcode并根据条件为其赋值。

如下所示:

  String postcode="";


 if(pc4){postcode="1234"}

答案 1 :(得分:2)

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

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

switch(countries.get(myCountry)) {
  case 4:
    // Stuff!
}

答案 2 :(得分:1)

使用三元条件运算符。

String postcode = pc4 ? "1234" : "";

答案 3 :(得分:0)

String postcode = null; // or ""
if (pc4)
  postcode = "1234";
else if (pc5)
  postcode = "12345";
else if (pc6)
  postcode = "123456";
else
  postcode = "default value";