08 July 2011

Yang Unik dari "the quick brown fox jump over the lazy dog"

Suatu kali saya pernah membaca bahwa kalimat "the quick brown fox jump over the lazy dog" menggunakan seluruh huruf yang ada dalam abjad, oleh karena penasaran, saya terpikir untuk membuat sebuah program kecil yang memeriksa apakah kalimat tersebut benar-benar menggunakan seluruh huruf dalam abjad.
Skenario program tersebut saya buat seperti ini.
  1. Deklarasi string tsb.
  2. Hilangkan spasi yang ada diantara kata-kata pada kalimat tersebut.
  3. Hilangkan huruf-huruf yang mungkin saja double pada kalimat tersebut.
  4. Rubah String tersebut menjadi Character Array
  5. Kemudian looping Array tersebut untuk di Printout ke Console.
Mungkin saya akan membuat sebuah fungsi terlebih dahulu yang berfungsi menghilangkan karakter yang sama jika sebuah string diberikan, oke begini kira-kira kode dari fungsi tersebut:

  1. public static String removeDuplicates(String s) {
  2. StringBuilder noDupes = new StringBuilder();
  3. for (int i = 0; i < s.length(); i++) {
  4. String si = s.substring(i, i + 1);
  5. if (noDupes.indexOf(si) == -1) {
  6. noDupes.append(si);
  7. }
  8. }
  9. return noDupes.toString();
  10. }
Contoh menggunakan Object StringBuilder sebagai wadah pemrosesan penghilangan karakter yang sama dalam sebuah string, dan kemudian fungsi tersebut mengembalikan String yang dibentuk dari StringBuilder.
Kemudian fungsi ini saya pakai dalam program kecil saya. Jika secara lengkap maka full-code dari program ini adalah seperti berikut ini:

  1. import java.util.Arrays;
  2. /**
  3. * Created by IntelliJ IDEA.
  4. * User: mojo
  5. * Date: 7/9/11
  6. * Time: 8:55 AM
  7. * <p/>
  8. */
  9. public class ArrayTest {
  10. public static void main(String[] args) {
  11. //ini deklarasi stringnya
  12. String sStr = "the quick brown fox jumps over the lazy dog";
  13. //kita hilangkan spasinya
  14. sStr = sStr.replace(" ", "");
  15. //kemudian kita hilangkan huruf yang sama pake fungsi removeDuplicates
  16. sStr = removeDuplicates(sStr);
  17. //kemudian kita rubah string tsb jadi Character Array
  18. char[] a = sStr.toCharArray();
  19. //kemudian kita sort character arraynya
  20. Arrays.sort(a);
  21. //mari kita print out..apakah benar menggunakan semua huruf dalam abjad...???
  22. for (int i = 0; i < a.length; i++) {
  23. char c = a[i];
  24. System.out.print(c);
  25. }
  26. //ternyata benar
  27. }
  28. public static String removeDuplicates(String s) {
  29. StringBuilder noDupes = new StringBuilder();
  30. for (int i = 0; i < s.length(); i++) {
  31. String si = s.substring(i, i + 1);
  32. if (noDupes.indexOf(si) == -1) {
  33. noDupes.append(si);
  34. }
  35. }
  36. return noDupes.toString();
  37. }
  38. }


Demikianlah keisengan saya, selamat mencoba dan silahkan dikembangkan sesuai dengan kreasi dan kebutuhan anda




Semoga bermanfaat.

Josescalia

No comments: