如果这些不等于null,我想添加街道,城市,邮政编码,国家/地区, 如果街道是null然后不添加街道,我有方法,但我想得到最短和最好的方法...
map.put(KEY_ADDRESS, street+" "+city +" " +zipcode+ " "+country);
我的方法是这个
if(street.trim().length()>0&&city.trim().length()>0&&zipcode.trim().length()>0&&country.trim().length()>0)
{
map.put(KEY_ADDRESS, street+" "+city +" " +zipcode+ " "+country);
}
else if(){
}
else if(){
}
我想要最短的方法来检查所有字符串是否为null然后不要将该字符串添加到地图中... 提前谢谢
答案 0 :(得分:1)
将所有字符串存储在数组中,顺序为:
String[] sa = new String{street, city, zipcode, country};
private String getAddress(String[] sa){
String s = "";
for(i = 0; i < 4; i++){
if(sa[i] != null){
s = s + " " + sa[i].trim();
}
}
return s;
}
答案 1 :(得分:1)
制作如下方法。 ...
表示可变参数。
public boolean AnyNullOrEmpty(String ... strs)
{
for(String s : strs) {
if(s == null)
return false;
if(s.trim().length() == 0)
return false;
}
return true;
}
称之为:
if(NoneNullOrEmpty(street, city, zipcode, country)) {
// do watever
}
答案 2 :(得分:1)
有一个内置的实用程序类可以将字符串测试为null或空:https://developer.android.com/reference/android/text/TextUtils.html#isEmpty(java.lang.CharSequence)
此外,您可以使用StringBuilder从部件构建String。
StringBuilder b = new StringBuilder();
String[] lines = {street, city, etc...}
for(String l : lines){
if(!TextUtils.isEmpty(l)){
b.append(l).append(" ");
}
}
String address = b.toString();
答案 3 :(得分:1)
map.put(KEY_ADDRESS, validate(street, true), true)+validate(city, true)+ validate(zipcode, true)+validate(country, false));
private String validate(String value, final boolean append)
{
value = ( value != null ) ? value.trim() : value;
return (value != null && value.length() > 0) ? value + (( append ) ? " " : "") : "";
}
答案 4 :(得分:1)
map.put(checkString(street)+checkString(city)+checkString(zip)+checkString(country));
public String checkString(String str)
{
return str.trim().length()>0?str:"";
}