您將字符串中的每個字符都轉換爲另一個字符。但是,你不會把這些角色放在一起。做到這一點的一種方式,但不一定是最有效的方法是使用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