java - Java程序中偶数索引的问题
问题描述
该方法采用 2 个参数 (String,char) 并返回用 char 替换的字符串,'+'
如果 index 是偶数,'#'
如果 index 是奇数。
我使用的字符串是"Mary Bella Abracadabra"
,预期的输出是"M+ry Bell+ +br#c#d#br+"
。相反,我得到"M#ry Bell# #br#c#d#br#"
.
我在我的代码中找不到错误。似乎找到 char ch 的所有索引都是奇数。
public String emphasize (String phrase, char ch){
String phraseEmph = "";
char c1 = '#';
char c2 = '+';
for (int i=0; i < phrase.length(); i++){
char c = phrase.charAt(i);
char cc = Character.toLowerCase(c);
if ((cc == ch) && ((i % 2) == 0)){
phraseEmph = phrase.replace(c,c2);
phrase = phraseEmph;
}
else if ((cc == ch) && ((i % 2)!= 0)){
phraseEmph = phrase.replace(c,c1);
phrase = phraseEmph;
}
phrase = phrase;
}
return phrase;
}
public void testEmphasize(){
String phrase = "Mary Bella Abracadabra";
char ch = 'a';
String Emphasized = emphasize(phrase,ch);
System.out.println("Emphasized : " + Emphasized);
}
解决方案
当您调用replace
它时,它不仅会替换 current 'a'
,还会替换所有这些。您需要找到一种不同的方法来替换字符,以便一次只更改一个。
(我故意避免提出修复建议。如果你自己想出它会更有教育意义。)
推荐阅读
- nginx - NGINX 重定向到 www 域不起作用
- linux - 有没有办法在主机和容器之间共享文件,同时保持容器的本机性能?
- python - Rabin-Karp 2D 模式搜索比蛮力运行慢
- audio - 如何使用 ffmpeg 从 .mkv 文件中提取所有音频?
- python - 有人可以帮我解决我的不和谐机器人代码错误吗?
- arrays - 访问结构数组
- python - AttributeError:“回购”对象没有属性“create_pull”
- android - SocketExpection:连接失败(os 错误权限被拒绝,errno=13),地址=encrypted-tbn0.gastatic.com,端口=443 in flutter
- python - Python Kivy 已安装在 pycharm 上,但不起作用
- java - 多对一关联插入而不是更新