尝试将 char 转换为字符串以放入方法中;我哪里错了?
Posted
技术标签:
【中文标题】尝试将 char 转换为字符串以放入方法中;我哪里错了?【英文标题】:Tried converting a char to a string to place in a method; where am i going wrong? 【发布时间】:2017-03-27 15:59:34 【问题描述】:我正在编写一个代码,将字符串中的字母替换为另一个字母。但是,我当前的任务需要特定格式的代码。我尝试了以下代码:
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;
但我也遇到了错误。任何帮助纠正我的语法将不胜感激。
【问题讨论】:
“但是我也遇到了错误。”什么错误? 编译器指出我对括号的使用可能不正确,或者我的 for 语句是非法的。这样做是众所周知的,但我相信我的错误在别处。 答案显示如果你使用toString
,结果是String
,你必须赋值给String
变量。 Java 是强类型的,这意味着您不能通过为其分配不同类型的东西来更改变量的类型。但是,您实际上并不需要转换为字符串,因为 Java 有一个 replace
允许 char
参数:docs.oracle.com/javase/8/docs/api/java/lang/…。
【参考方案1】:
您尝试将使用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
周长,并跳过分配您的 Strings
的步骤.请注意,replace
仍将替换所有出现的char
:
return word.replace(letterToReplace, replacingLetter);
【讨论】:
我现在明白了,感谢您的两条建议。我会在接下来的作业中记住它们。 没问题,很高兴能帮上忙。 :)【参考方案2】:您的 letterToReplace 和 replacingLetter 变量是字符类型,您将 String 作为 Character.toString 分配给它们方法返回字符串。 将变量类型更改为 String 即可。
【讨论】:
以上是关于尝试将 char 转换为字符串以放入方法中;我哪里错了?的主要内容,如果未能解决你的问题,请参考以下文章