最近の言語には、ソートや検索などの便利な機能が備わっていることが多い。こういった機能を大いに利用して自分ではコーディングしない。コーディングしなければ試験の必要もない。
|
ZipCode.java
public class ZipCode {
public boolean isZipCode(String s) {
// 郵便番号(123-4567 のような形式)かをチェックする
if (s.length() != 8) return false;
if (s.charAt(3) != '-') return false;
String a = s.substring(0, 3);
String b = s.substring(4, 8);
try {
Integer.parseInt(a);
Integer.parseInt(b);
}
catch(Exception e) {
return false;
}
return true;
}
}
(存在を知らないのか使用方法が分からないのか)既存のメソッドを使用せず、自分でコーディングしました。 |
ZipCode.java
public class ZipCode {
public boolean isZipCode(String s) {
return s.matches("[0-9]{3}-[0-9]{4}");
}
}
正規表現で比較できる matches メソッドを利用しました。 正規表現を使用できる String クラスのメソッドには次のようなものがあります。
この外にも、正規表現パターンを指定する Pattern と、比較した結果を受け取る Matcher というクラスがあります。 |
既存のクラスに処理を委譲する。
|
Process.java
public class Process {
public void printMessage(String message) {
// 略(この例では ◎ を付ける)
String mess = "◎" + message;
System.out.println(mess);
}
// 略
}
同様な処理をするメソッドがあるのに新たに作成しました。 |
Printer.java
public class Printer {
public void print(String message) {
// 略(この例では ◎ を付ける)
String mess = "◎" + message;
System.out.println(mess);
}
}
Process.java
public class Process {
private Printer printer = new Printer();
public void printMessage(String message) {
printer.print(message); // 処理を委譲
}
// 略
}
同様な処理をする Printer クラスの print メソッドがあるので、処理を委譲します。 |