Monday, 30 March 2015

cara mencari kata di dalam string dengan java

nah kali ini ane ingin sharing yaitu bagaimana mencari sebuah kata irsyad di dalam sebuah kalimat /* ada seorang anak bernama irsyad yang tampan dan dermawan hahaha */ dan terletak di baris ke berapa kata irsyad tersebut
nah langsung aja di copy script di bawah ini sebelum nya ane menggunakan netbeans 7.3 dalam pembuatan program ini dan beri nama pencocokan.java

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package pencocokan;

import java.util.Scanner;

/**

 *

 * @author lupa lagi

 */

public class Pencocokan {



    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        String text, pattern;



        Scanner in = new Scanner(System.in);



        System.out.print("Masukkan string = ");

        text = in.nextLine();



        System.out.print("Masukkan pattern = ");

        pattern = in.nextLine();

//stringmatch berfungsi untuk

        StringMatch a = new StringMatch(text, pattern);



        if (a.run()) {

            System.out.println("Pattern ditemukan pada kata ke-" + a.idx);

        } else {

            System.out.println("Pattern tidak ditemukan dalam string");

    }

}

}

kemudian buat satu lagi class yang bernama StringMatch.java dan copy kan script di bawah ini kedalam class tsb


/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package pencocokan;



/**

 *

 * @author lupa lagi

 */

public class StringMatch {

  

     String[] text;

    String[] pattern;

    int n, m, idx;

    boolean ketemu;



    public StringMatch(String text, String pattern) {

        //split berfungsi untuk memecah character menjadi array

        this.text = text.split("");

        this.pattern = pattern.split("");

        this.n = this.text.length;

        this.m = this.pattern.length;

        this.idx = -1;

    }



    public boolean run()

    {

        int i = 0;



        while (i <= n-m && !ketemu) {

            int j = 1;

//equals berfungsi untuk membanding kan 2 buah variabel

            while (j < m && (this.pattern[j].equals(this.text[i + j]))) {

                j = j + 1;

            }



            if (j == m)

                ketemu = true;

            else

                i = i + 1;

        }



        if (ketemu)

            this.idx = i + 1;



        return ketemu;


    }

  

}
nah sedikit ane jelasin script di atas disini kita menggunakan 2 buah parameter untuk menjalankan program ini yaitu karakter yang udah di sediakan(text) dan kata kunci(petern)
nah ketika kalimat yang pertama tadi di runing maka  tampil hasil nya seperti ini
Pattern ditemukan pada kata ke-26

2 comments: