我正在编写一个代码,用另一个字母替换字符串中的字母。但是,我当前的任务需要特定格式的代码。我尝试了下面的代码:
public String replaceLetter(String word, char letterToReplace, char replacingLetter)
{
letterToReplace = Character.toString(letterToReplace);
replacingLetter = Character.toString(replacingLetter);
word = word.replaceAll(letterToReplace, replacingLetter);
return word;
}
请原谅编码中的任何低效率,因为我对一般编程还比较陌生。我最近也更深入地研究了字符和字符串,因此对于与它们相关的一些规则或特征,我有很多不了解的地方。我的代码中的错误是否不合逻辑?我目前使用的 IDE 是一款在线 IDE,其唯一目的是收集我的作业进行评分。每当我编译上面的代码时,它都会给我错误,例如缺少返回语句,所以我不会认为它是可靠的。 IDE 本身非常有限,无法编译诸如 switch 语句之类的东西,所以我希望它尽可能简单。然而,我发现 IDE 可以识别最正确的编码。我确实尝试尝试使用 for 语句进行编码:
public String replaceLetter(String word, char letterToReplace, char replacingLetter)
{
for (int i = 0; i < word.length(); i++)
{
char ca = word.charAt(i);
if (ca == letterToReplace)
{
word = (word.substring(0,i)+ replacingLetter + word.substring(i+1));
}
}
return word;
}
但我也遇到了错误。任何纠正我的语法的帮助将不胜感激。
最佳答案
您尝试将使用 Character.toString
创建的 Strings
分配给现有的 chars
,然后将这些 >chars
到 replaceAll
函数中(不接受 chars
,它需要 Strings
)。尝试将您的代码更改为:
public String replaceLetter(String word, char letterToReplace, char replacingLetter)
{
String letterToReplaceAsString = Character.toString(letterToReplace);
String replacingLetterAsString = Character.toString(replacingLetter);
word = word.replaceAll(letterToReplaceAsString, replacingLetterAsString);
return word;
}
编辑: 正如 ajb 指出的,您还可以调用 replace
(而不是 replaceAll
)传入原始 char
周界,并跳过分配字符串
的步骤。请注意,replace
仍将替换所有出现的 char
:
return word.replace(letterToReplace, replacingLetter);
关于java - 尝试将字符转换为字符串以放入方法中;我哪里出错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40581562/