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