You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Java中对应C#的.Remove方法是什么?实现EditText点按删单字符

问题描述

我正在开发一款带删除按钮的计算器,期望点击删除按钮时每次删除EditText中的一个字符,例如按下DEL按钮时,EditText末尾的数字3会被移除。我当前编写的删除按钮C#代码如下:

if (txtResult.length() > 0){
    txtResult = txtResult.getText().Remove(txtResult.length() - 1);
    if (txtResult.equals("")){
        txtResult.setText("0");
    }
}

请问在Android Studio的Java开发环境中,对应C#的.Remove方法的等效实现是什么?


实现方案

C#中Remove(startIndex)方法的作用是删除字符串从startIndex位置到末尾的所有字符,Java中可以使用String.substring()方法实现完全等效的效果,适配Android场景的完整代码如下:

// 点击DEL按钮的触发逻辑
delBtn.setOnClickListener(v -> {
    String content = txtResult.getText().toString();
    if (content.length() > 0) {
        // 等效C# Remove(txtResult.length() - 1)的核心实现
        String newContent = content.substring(0, content.length() - 1);
        if (newContent.isEmpty()) {
            txtResult.setText("0");
        } else {
            txtResult.setText(newContent);
        }
        // 可选优化:将光标移动到文本末尾,符合用户操作习惯
        txtResult.setSelection(txtResult.getText().length());
    }
});

方法说明

  • Java的substring(int beginIndex, int endIndex)会返回起始下标beginIndex到结束下标endIndex前一位的子字符串,因此截取0到content.length() - 1的内容,刚好可以删掉字符串最后一位,和你原来C#代码的逻辑完全一致。
  • 注意Android中EditText.getText()返回的是Editable类型,需要先转成普通String再做截取操作,处理完成后再调用setText()把新内容赋值给控件。

内容的提问来源于stack exchange,提问作者WiloWisk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:36:04