2011-11-17 8 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>(); 

と私のような文字列として値を取得していますこれは:

私は文字列を取得していますが、2つの値が選択されている場合、2,3,その最後のカンマを削除するには?私は文字列が2,3のようなものでなければならない最後のコンマを望んでいません。

+1

私自身がopensource apache string 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

'appr.()'呼び出しで 'str.toString()'が使われている理由がわからないため、私のofvoteを取り消しました。それはすでに 'String'ですか?また、最後の行になります。 '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; 
0

別を使用オプションStringUtils#join(Object\[\], String, int, int)を見ることである。

が配列を取り、区切り文字と一緒にそれを置くことができる方法を参加している...

例:

StringUtils.join([null, "", "a"], ',') // creates... ",,a" 
3

あなたには、あなたの文字列配列を置くことができます条件:あなたは常にすでに書き込まれ、ローリングYをテストしたコードを使用したほうが良いです私見

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

関連する問題