您将字符串中的每个字符都转换为另一个字符。但是,你不会把这些角色放在一起。做到这一点的一种方式,但不一定是最有效的方法是使用StringBuilder
类。该课程设计为可变的String
。
我不会写最内层的方法,但这里有一个开始。
public class ABTranslator {
public String translate(String before) {
StringBuilder b = new StringBuilder();
for (int i = 0, length = before.length(); i < length; i++) {
char a = before.charAt(i);
b.append(convert(a));
}
return b.toString();
}
public char convert(char before) {
// You write this.
}
}
您可以使用正则表达式而不是上面的if
代码。
现在,写了一组JUnit测试,以检查你的方法是否正确:
//In ABTranslatorTest.java
@Before
public void initTranslator() {
this.translator = new ABTranslator();
}
@Test
public void digitsAreConvertedToThemselves() {
Assert.assertEquals('3', translator.convert('3');
}
@Test
public void mostCharsAreConvertedToThemselves() {
Assert.assertEquals('X', translator.convert('X');
}
@Test
public void ABCAreConvertedToTwo() {
Assert.assertEquals('B', translator.convert('2');
}
@Test
public void WordsAreConvertedAsCharactersAre() {
Assert.assertEquals("222", translator.translate("AB2");
}
使所有这些工作。从同事处找出如何设置JUnit 4.11。请注意,我使所有的方法都是非静态的。如果你没有这方面的经验,请写一个主要方法。尽管如此,这应该是你唯一的方法static
。
呃...你的编辑使我们的答案无效。如果您还有其他问题要问,请在另一个问题中提出。否则,此编辑可能会恢复。 – Makoto
继续并恢复,对不起 – user2770254