web-dev-qa-db-ja.com

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つの値を選択すると、2、3のようになります。最後のカンマを削除するにはどうすればよいですか?文字列の最後のコンマが2,3のようになっている必要はありません。

10
Froyo
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;
29
user370305

条件をチェックすることができます:

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

文字列配列を次の条件に置くことができます。

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

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;
1
MByD

別のオプションは、 StringUtils#join(Object\[\], String, int, int) :を確認することです。

配列を取り、それを区切り文字と組み合わせることができる結合メソッドがあります...

例:

 StringUtils.join([null, "", "a"], ',')   // creates... ",,a"
0
John Sobolewski