Search code examples
androidstringstringbuffer

Cannot delete last char of StringBuffer String


I am facing a strange(for me) problemm of not being able to delete the last char of a stringbuffer string. I am building an app in which i have many checkboxes and i want to take multiple values so thats why i used the stringbuffer to append the checkboxes names.

Code:

int length = iceCreamPreference.length();
                if (length>0){
                    iceCreamPreference = iceCreamPreference.deleteCharAt(length - 1);
                }
                Toast.makeText(SweetsLayoutActivity.this,
                        "Quantity: " + quantityNumberFinal +
                                "\nIce Cream Flavors: " + iceCreamPreference.toString() +
                                "\nIce Scream Scoops: " + quantityIceCreamNumberFinal +
                                "\nSyrups: " + syrupPreference.toString(), Toast.LENGTH_LONG).show();

Where i build the StringBuffer:

private void checkWhatIceCreamSelected() {
        iceCreamPreference = new StringBuffer();
        if (chocolate.isChecked()){
            iceCreamPreference.append(chocolate.getText().toString() + ", ");
        }
        if (strawberry.isChecked()){
            iceCreamPreference.append(strawberry.getText().toString() + ", ");
        }
        if (vanilla.isChecked()){
            iceCreamPreference.append(vanilla.getText().toString() + ", ");
        }
        if (banana.isChecked()){
            iceCreamPreference.append(banana.getText().toString() + ", ");
        }
        if (cookies.isChecked()){
            iceCreamPreference.append(cookies.getText().toString() + ", ");
        }
        if (pistachio.isChecked()){
            iceCreamPreference.append(pistachio.getText().toString() + ", ");
        }
        if (cheeseCake.isChecked()){
            iceCreamPreference.append(cheeseCake.getText().toString() + ", ");
        }
        if (oreo.isChecked()){
            iceCreamPreference.append(oreo.getText().toString() + ", ");
        }
        if (mango.isChecked()){
            iceCreamPreference.append(mango.getText().toString() + ", ");
        }
        if (caramel.isChecked()){
            iceCreamPreference.append(caramel.getText().toString() + ", ");
        }
        if (pineapple.isChecked()){
            iceCreamPreference.append(pineapple.getText().toString() + ", ");
        }
        if (sorbet.isChecked()){
            iceCreamPreference.append(sorbet.getText().toString() + ", ");
        }


    }

The Result:

HERE

I would like to have the last "," comma removed.

Any suggestions will be highly appreciated!!!


Solution

  • The last char in the your StringBuffer will be a space, so you need to delete the last two characters to get rid of the final comma.