2013-02-19 12 views
2

我想添加街道,城市,郵政編碼,國家如果這些不等於空 如果街道爲空然後donot添加街道,我有方法,但我想這個時間最短,最好的方法......想要最短的方法,如果字符串不爲空然後添加,否則不會

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

    } 

我要檢查所有的字符串都爲空,然後DONOT添加字符串轉換成地圖最短的方法.. 。 在此先感謝

回答

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; 
} 
+0

不要忘記元素之間加空格。此外,只有當元素不爲空時,您才需要添加空間。 – 2013-02-19 08:06:08

+0

是的,我注意到 – Rohit 2013-02-19 08:13:20

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 
} 
+0

還不錯,但我認爲@Archie.bpgc的答案是最好的答案 – Rohit 2013-02-19 07:55:27

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(); 
+0

不錯,但我認爲@Archie.bpgc的答案是最好的答案 – Rohit 2013-02-19 07:54:30

+0

這將是如果他曾經使用StringBuilder或StringBuffer而不是String concatenation 。 (我的循環會大大改善,不過,我現在補充說) – alex 2013-02-19 07:56:52

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) ? " " : "") : ""; 
} 
+0

不錯,但我認爲@Archie.bpgc的回答是最好的答案 – Rohit 2013-02-19 07:54:07

1
map.put(checkString(street)+checkString(city)+checkString(zip)+checkString(country)); 

public String checkString(String str) 
{ 
return str.trim().length()>0?str:""; 
} 
相關問題