问题
I have 5 checkboxes and I have to select multiple checkboxes.
I made a code like this to check check box is checked:
sports=(CheckBox)findViewById(R.id.sports_btn);
sports.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (sports.isChecked() == true)
list.add("4");
}
});
I am adding a value to an array list:
list ArrayList<String> list = new ArrayList<String>();
and I am retrieving the value as string like this:
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;
I am getting the string but if two values are selected it is coming like 2,3, How to remove that last comma? I don't want the last comma the string has to be like 2,3.
回答1:
StringBuilder sb = new StringBuilder();
sb.deleteCharAt(sb.length()-1)
Or in your code, use
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;
回答2:
You can put the condition to check:
for (String str : list)
{
sb.append(str.toString());
if (i!=list.size()-1)
{
sb.append(",");
}
}
回答3:
You can put your string array in condition:
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;
}
回答4:
You can use 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;
回答5:
Another option is to look at StringUtils#join(Object\[\], String, int, int):
there is a join method which can take an array and put it together with a delimeter...
ex:
StringUtils.join([null, "", "a"], ',') // creates... ",,a"
回答6:
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;
来源:https://stackoverflow.com/questions/8167088/appending-with-stringbuilder