无法解决方法' deleteCharAt()'

时间:2014-12-09 17:56:38

标签: java android

'deleteCharAt()'的替代方法是什么?有图书馆吗?

我想删除String上的特定字符。

这是我目前的代码:

public class MainActivity extends Activity {

    @Override


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText name1;
        EditText name2;
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v){


                EditText name1;
                EditText name2;
                TextView textout2;
                TextView textout;
                int sum;

                name1 = (EditText)findViewById(R.id.editText);
                name2 = (EditText)findViewById(R.id.editText2);
                int totalLength = 0;
                int total;
                String inputText1 = name1.getText().toString();
                String inputText2 = name2.getText().toString();
                totalLength = name1.length() + name2.length();

                Toast toast = new Toast(getApplicationContext());
                toast.setGravity(Gravity.TOP | Gravity.LEFT,0, 0);

                for (int i = 0; i < name1.length(); i++)
                {

                    char ch = inputText1.charAt(i);
                    for (int j = 0; j < name2.length(); j++)
                    {     
                        if (ch == inputText2.charAt(j))
                        {
                            inputText1.deleteCharAt();
                            inputText2.deleteCharAt();

                        }

                    }

                }


        });



    }

4 个答案:

答案 0 :(得分:1)

将字符串保存在StringBuilder

StringBuilder builder = new StringBuilder(yourString);

您可以使用deleteChatAt()方法。

答案 1 :(得分:0)

只需更改以下行:

StringBuilder inputText1 = new StringBuilder(name1.getText().toString());
StringBuilder inputText2 = new StringBuilder(name2.getText().toString());

StringBuilder类有一个deleteCharAt()方法(正是你要找的)。

要从StringBuilder获取String对象,只需使用:

String str = inputText1.toString(); 

答案 2 :(得分:0)

getText()EditText一起使用会返回Editable(即可编辑的String)。 Editable没有像StringBuilder这样的deleteCharAt (int index)方法。但是,您可以使用其delete (int st, int en)方法作为替代方法,其中st是起始索引,en是结束索引(不包括)。因此,如果您要删除单个char,请创建en = st + 1

int index = 4;

EditText myEditText = (EditText) findViewById(R.id.editText);
Editable text = myEditText.getText();
text.delete(index, index + 1); // delete char at index

答案 3 :(得分:-1)

Remove(Int32, Int32)

它可以用作deleteCharAt()

的替代品

上面的代码返回一个新字符串,其中删除了从指定位置开始的当前实例中指定数量的字符。