Добавление с помощью StringBuilder

У меня есть 5 флажков, и мне нужно выбрать несколько флажков.

Я сделал такой код, чтобы установить флажок:

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.

Solutions Collecting From Web of "Добавление с помощью StringBuilder"

 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; 

Вы можете проверить условие:

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

Вы можете поместить свой массив строк в состояние:

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

Вы можете использовать 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; 

Другой вариант – посмотреть на StringUtils#join(Object\[\], String, int, int) :

Существует метод объединения, который может принимать массив и сочетать его с делителем …

например:

  StringUtils.join([null, "", "a"], ',') // creates... ",,a" 
 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;