2011-11-17 36 views
8

我有5个复选框,我必须选择多个复选框。附加StringBuilder

我做了这样的代码来检查复选框被选中:

sports=(CheckBox)findViewById(R.id.sports_btn); 
sports.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     if (sports.isChecked() == true) 
     list.add("4"); 
    } 
}); 

我加入一个值到一个数组列表:

list ArrayList<String> list = new ArrayList<String>(); 

,我检索值像串这个:

StringBuilder sb = new StringBuilder(); 
for(int i =0; i < list.size(); i++) 
{ 
    for (String str: list) 
    { 
     sb.append(str.toString()); 
     sb.append(","); 
    } 

} 
String sel_cat = sb; 

我得到的字符串,但如果两个值被选中它就像2,3, 如何删除最后一个逗号?我不希望字符串的最后一个逗号是2,3。

+1

恕我直言,你永远是最好使用已经编写和测试,然后滚动而Y码我们自己因此推荐使用开源的apache字符串util库 –

回答

18
StringBuilder sb = new StringBuilder(); 
sb.deleteCharAt(sb.length()-1) 

或者在你的代码,使用

StringBuilder sb = new StringBuilder(); 

for(int i =0;i<list.size();i++) 
{ 
    String prefix = ""; 
    for (String str : list) 
    { 
     sb.append(prefix); 
     prefix = ","; 
     sb.append(str); 
    } 
} 

String sel_cat = sb; 
+0

'StringBuilder'有一个名为'deleteCharAt'的方法... – MByD

+0

取消了我的观点,原因是我不明白为什么在append()调用中使用了'str.toString()'。这不是'String'吗?另外,最后一行; '字符串sel_cat = sb;'编译? –

5

你可以把条件检查:

for (String str : list) 
{ 
    sb.append(str.toString()); 
    if (i!=list.size()-1) 
    { 
    sb.append(","); 
    } 
} 
+0

这也是我的第一步,但它在每次迭代中都需要一个条件。 – MByD

1

您可以使用deleteCharAt:

StringBuilder sb = new StringBuilder(); 
for(int i =0;i<list.size();i++) 
{ 
    for (String str : list) 
    { 
     sb.append(str); // str is already a String, no need for toString() 
     sb.append(","); 
    } 
} 
if (sb.length() > 0) { 
    sb.deleteCharAt(sb.length()-1); 
} 
String sel_cat=sb; 
3

你可以把你的字符串数组条件:

String list[]=new String[]{"A","C","D","F"}; 

public String print(String arr[]){ 

    StringBuilder sb = new StringBuilder(); 
    String prefix = ""; 
    for (String str : arr) 
    { 
     sb.append(prefix); 
     prefix = ","; 
     sb.append(str); 
    } 

    System.out.println("WithCommas"+sb); 
    return sb; 
} 
-1
import android.app.DatePickerDialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.DatePicker; 
import android.widget.EditText; 
import android.widget.ImageButton; 
import android.widget.ScrollView; 
import android.widget.TimePicker; 
+0

嗨,欢迎来到StackOverflow。请不要将代码转储为答案,请解释您正在做什么,以便人们了解如何解决问题。谢谢。 – Cthulhu

相关问题