2

我想添加街道,城市,邮政编码,国家,如果这些不等于空,如果街道为空,那么不要添加街道,我有方法,但我想为此获得最短和最好的方法......

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(){

     }

我想要检查所有字符串是否为空的最短方法,然后不要将该字符串添加到地图中...在此先感谢

4

5 回答 5

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;
}
于 2013-02-19T07:48:19.967 回答
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
}
于 2013-02-19T07:48:52.493 回答
1

有一个内置的实用程序类来测试字符串为空或空:https://developer.android.com/reference/android/text/TextUtils.html#isEmpty(java.lang.CharSequence)

此外,您可以使用 StringBuilder 从零件构建您的字符串。

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();
于 2013-02-19T07:50:50.707 回答
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 ) ? " " : "") : "";
}
于 2013-02-19T07:52:06.457 回答
1
map.put(checkString(street)+checkString(city)+checkString(zip)+checkString(country));

public String checkString(String str)
{
return str.trim().length()>0?str:"";
}
于 2013-02-19T08:02:18.607 回答