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()
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());
}
}
});
添加回答
举报