2

TextView で Nunation を含むアラビア語の単語を検索し、これを強調表示したい。

4

2 に答える 2

2

こんにちは、私が作成した以下のクラスをご覧ください。それはとても基本的で、メモリ消費を気にしませんでした。皆さんは自分自身を最適化できます。

http://freshinfresh.com/sample/ABHArabicDiacritics.java

アラビア語の文字列にヌネーション(harakath)が含まれていないことを確認したい場合は、

    ABHArabicDiacritics objSearchd = new ABHArabicDiacritics();
objSearchdobjSearch.getDiacriticinsensitive("وَ اَشْهَدُ اَنْ لا اِلهَ اِلاَّ اللَّهُ").contains("اشهد");

Highliged または redColored の検索部分を文字列で返したい場合。以下のコードを使用

ABHArabicDiacritics objSearch = new ABHArabicDiacritics( وَ اَشْهَدُ اَنْ لا اِلهَ اِلاَّ اللَّهُ, اشهد);
SpannableString spoutput=objSearch.getSearchHighlightedSpan();
            textView.setText(spoutput);

検索テキストの開始位置と終了位置を確認するには, 以下のメソッドを使用します.

 /** to serch Contains */
            objSearch.isContain();//
            objSearch.getSearchHighlightedSpan();
            objSearch.getSearchTextStartPosition();
            objSearch.getSearchTextEndPosition();

共有Javaクラスをコピーしてお楽しみください。

皆さんからのリクエストがあれば、より多くの機能を追加するためにもっと時間を費やします。

ありがとう

于 2016-11-27T11:25:08.637 に答える
0

INPUT で検索: public void RegexMatches() {

    String INPUT  ="ى لَیْلَهِ تَمامِهِ وَکَمالِهِ فَما کانَتْ اِلاّ ساعَهً وَاِذا بِوَلَدِىَ الْحَسَنِ قَدْ" ;


    Pattern p = Pattern.compile("و[\\u064B-\\u064F\\u0650-\\u0656]*ل[\\u064B-\\u064F\\u0650-\\u0656]*د");
    Matcher m = p.matcher(INPUT);   // get a matcher object
    int count = 0;

    while(m.find()) {
        count++;
        System.out.println("Match number "+count);
        System.out.println("start(): "+m.start());
        System.out.println("end(): "+m.end());
    }
}
于 2016-11-27T09:48:04.443 に答える