2012年3月29日木曜日

TopCoder SRM356 Div2 250Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題についておおまかに説明する。

SMSメッセージは携帯電話の間でやりとりされる短いメッセージである。最大長で160文字であり、しばしば短縮形が必要となる。textという文字列が与えられたとき、SMS用の言語に変換したものを返せ。変換のルールは次に従う。上にあるものほど優先される。

変換前変換後
"."、","、"?"、"!"削除("")
A-Z(大文字)a-z(小文字)
and&
ate8
at@
youU
以上の変換を文字列textに対して行った結果を返すメソッドを作成せよ。

私の解答はこちら。

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 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計