Đếm từ trong chuỗi bằng arrays và lớp char. | Count number of words in string by arrays and char class.

Trong bài trước tôi có giới thiệu một cách để đếm số từ (words) có trong một chuỗi (string) bằng cách sử dụng arrays split part. Ở đây tôi xin giới thiệu thêm một cách dùng arrays và lớp char để đếm số từ trong một chuỗi, tuy cách này phức tạp hơn so với cách trên nhưng theo đối nó cũng rất đáng để tham khảo vì nó giúp mở rộng tư duy chúng ta khi biết thêm nhiều cách để giải quyết cùng một vấn đề.

StringDemo_WordCount.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package z_example;

/**
 *
 * @author bnson
 */
public class StringDemo_WordCount {

    private static int i, c = 0, rs;

    private static int wordcount(String s) {
       
        char ch[] = new char[s.length()];      //in string especially we have to mention the () after length
        for (i = 0; i < s.length(); i++) {
            ch[i] = s.charAt(i);
            if (((i > 0) && (ch[i] != ' ') && (ch[i - 1] == ' ')) || ((ch[0] != ' ') && (i == 0))) {
                c++;
            }

        }
       
        return c;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String strDemo = "    VNLives.NET is my blog.       ";
       
        rs = StringDemo_WordCount.wordcount(strDemo);
        //string is always passed in double quotes
       
        System.out.println("The number of words in the String are:  " + rs);       
       
    }
}


Result - Kết Quả

run:
The number of words in the String are:  4
BUILD SUCCESSFUL (total time: 0 seconds)

Môt điều khá thú vị tôi có thử test qua hiệu suất của nó với giải thuật đếm số từ bằng "strDemo.split(" ").length;" thì kết qua khá là tương đương, thâm chí giải thuật trên còn nhanh hơn một chút so với giải thuật dùng "strDemo.split(" ").length;", tuy nhiên do chỉ test sơ qua nên cũng không chắn chắn nha :)).



No comments:

Post a Comment