模拟主题无法解决我的问题。
我需要在给定的字符串'a'
中将字符'x'
更改为str
。
示例:“abc”=“xbc”。我只能使用substring(), charAt()
- 没有replace()
方法。
到目前为止我的代码:
public static String ersetze(String text){
for(int i = 0; i<text.length(); i++){
if(text.substring(i, i+1).charAt(i) == 'a'){
text.substring(i, i+1) = 'x';
}
}
//return statement
}
现在错误是text.substring(i, i+1) = 'x';
,左侧分配必须是变量 - 清除。但是现在如何将字母赋予变量?如果我声明char x;
如何将x
放入字符串中以替换字母?
答案 0 :(得分:5)
String
为immutable,因此您无法替换String的字母。您需要创建一个新的String。
您可以将String转换为chars数组并仅更改所需的字符串,然后从该数组中创建一个新的String:
public static String ersetze(String text){
char[] letters = text.toCharArray();
for (int i = 0; i < letters.length; i++){
if (letters[i] == 'a') {
letters[i] = 'x';
}
}
return new String(letters);
}
答案 1 :(得分:5)
字符串不能替换为字符。首先需要创建字符数组&amp;然后替换。
public static String ersetze(String text){
char[] result = text.toCharArray();
for(int i = 0; i < result.length; i++){
if(result [i] == 'a'){
result[i] = 'x';
}
}
return String.valueOf(result);
}
答案 2 :(得分:2)
如果你真的需要这个并且你只能使用你提到的方法,那么你每次找到所需的char时都可以这样做:
text = text.substring(0, i) + x + text.substring(i + 1);
答案 3 :(得分:0)
将字符串转换为字符数组(包含在java API中),遍历数组并用&#34; x&#34;&#替换所有&#34; a&#34;&#; 39;在char数组中,然后将其更改回字符串。