用循环替换具有特定字符的所有字符

时间:2013-12-04 22:17:01

标签: java string char replacewith

对于这个课堂作业(你可以看到我没有完成它因为我不知道如何开始这个) 我想制作一个程序,当用户输入他/她的字符串,加上替换所有字符的字符时,它会将原始字符串的字符更改为新字符。 例如,我会输入笔记本电脑,我想用字母I替换它,所以新字符串将成为我。

torerereced,一个你想要替换你的字符串的角色 替换为,当来自torereplaced的字符替换用户输入的原始字符串时。 如果它为空,返回原始字符串,如果它有一个字符串和要替换的字符,则替换它。

/**
 * Replaces all instances of the character toBeReplaced 
 * with replacedWith in the String str. Remember str.charAt(int i) 
 * gives you the character at a location.
 * @param str
 * @param tobeReplaced
 * @param replacedWith
 * @return
 */
public static String replaceChar(String str, char tobeReplaced, char replacedWith)
{
    return str;
}

3 个答案:

答案 0 :(得分:1)

好的,我想你不能使用replaceAll()因为这会使这项任务变得微不足道; - )

现在您要做的是查看String javadoc并找出如何使用substring(int beginIndex, int endIndex)方法替换字符。

然后你会想到一种方法,你可以将for循环中的charAt(int index)循环与split()组合,从而为你提供指定索引处的字符。

实际上你也可以看看String s = "halalo"; String [] split = s.split("a"); // split now contains: split[0] = "h", split[1] = "l", split[2] = "lo" 因为它也可以用来替换一个角色:

{{1}}

答案 1 :(得分:0)

该方法的论点很少混淆。 'tobeReplaced'和'replacementWith'之间有什么区别?

如果我正确理解了问题,该方法应该接受两个参数:

  1. 用户输入的字符串
  2. 用户输入的字符替换字符串。
  3. 我没有看到任何条件被提及(如果字符串不为空或仅在字符串包含某些字符等时才更换)。当没有条件时,该方法可以简单地返回收到的字符输入。

    如果我的理解不对,请纠正我。感谢。

答案 2 :(得分:0)

这是一项简单的任务,因为只能发生3种情况:

replaceChars(s, toBeReplaced, replacement)
  1. s是空字符串。结果是空字符串。
  2. s以要替换的字符开头。    结果是replacement + replaceChars(rest, toBeReplaced, replacement)    rest s没有第一个字符的地方。
  3. s不会以要替换的字符开头。    结果是first + replaceChars(rest, toBeReplaced, replacement)    first的第一个字符srest的其余部分s,与之前一样。