为了账号安全,请及时绑定邮箱和手机立即绑定

用0,1代替“”替换字符串的一部分

用0,1代替“”替换字符串的一部分

慕婉清6462132 2021-04-05 12:09:38
   mSwitch.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (mSwitch.getText().equals("Everybody")) {                PRIVACY = PRIVACY.replace(PRIVACY.substring(0, 1), "E");                Log.d("TEXT", PRIVACY);            } else if (mSwitch.getText().equals("Nobody")) {                PRIVACY = PRIVACY.replace(PRIVACY.substring(0, 1), "N");                Log.d("TEXT", PRIVACY);            }        }    });隐私字符串=“ E / E / N / N / E ........ / N我有多个用于更改每个字符的按钮只是一个随机的字符,用“ /”分隔因此,在单击切换按钮时,我想用E或N替换一个字符,但是上面的代码我替换了所有类似结果的结果,要么是E / E / E / E / E ....要么是N / N / N / N / N ...我哪里出问题了?
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

这行:


PRIVACY = PRIVACY.replace(PRIVACY.substring(0, 1), "E")

会在PRIVACY每次出现的第一个字符都替换为“ E”的情况下替换内部,

因为该replace()方法的第一个参数是要查找的字符串。

像这样做:


mSwitch.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

        if (mSwitch.getText().equals("Everybody")) {

            PRIVACY = "E" + PRIVACY.substring(1);

            Log.d("TEXT", PRIVACY);

        } else if (mSwitch.getText().equals("Nobody")) {

            PRIVACY = "N" + PRIVACY.substring(1);

            Log.d("TEXT", PRIVACY);

        }

    }

});

PRIVACY.substring(1)是PRIVACY的一部分,从第二个字符开始直至结束。

编辑

如果要用“ A”代替第5个字符:


PRIVACY = PRIVACY.substring(0, 5) + "A" + PRIVACY.substring(6);

查看更多substring()


查看完整回答
反对 回复 2021-04-14
?
智慧大石

TA贡献1946条经验 获得超3个赞

有多种选择可在一个位置替换一个字符。其中之一是使用stringbuilder。


例子:


 mSwitch.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

        if (mSwitch.getText().equals("Everybody")) {

            StringBuilder stringBuilder = new StringBuilder(PRIVACY[0]);

            stringbuilder.setCharAt(0, 'N'); //you can also use "N".charAt(0) instead of 'N'

            Log.d("TEXT", stringbuilder.toString());

        } else if (mSwitch.getText().equals("Nobody")) {

            StringBuilder stringBuilder = new StringBuilder(PRIVACY[0]);

            stringbuilder.setCharAt(0, 'E'); //you can also use "E".charAt(0) instead of 'E'

            Log.d("TEXT", stringbuilder.toString());

        }

    }

});


查看完整回答
反对 回复 2021-04-14
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信