このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題についておおまかに説明する。
SMSメッセージは携帯電話の間でやりとりされる短いメッセージである。最大長で160文字であり、しばしば短縮形が必要となる。textという文字列が与えられたとき、SMS用の言語に変換したものを返せ。変換のルールは次に従う。上にあるものほど優先される。
| 変換前 | 変換後 |
|---|---|
| "."、","、"?"、"!" | 削除("") |
| A-Z(大文字) | a-z(小文字) |
| and | & |
| ate | 8 |
| at | @ |
| you | U |
私の解答はこちら。
public class SMSLanguage {
public String translate(String text) {
text = text.toLowerCase();
text = text.replace(".", "");
text = text.replace(",", "");
text = text.replace("?", "");
text = text.replace("!", "");
text = text.replace("and", "&");
text = text.replace("ate", "8");
text = text.replace("at", "@");
text = text.replace("you", "U");
return text;
}
}へぇ、replaceメソッドは先頭だけでなく、文字列中の全部の要素を書き換えてくれるんだというのが最初の感想。IDEが便利すぎて驚きます。

0 件のコメント:
コメントを投稿