2

我想在 TextView 中找到一个带有 Nunation 的阿拉伯语单词并突出显示它,例如,如果我的单词是“اشهد”而没有 Nunation,我想在带有 Nunation 的“وَ اَشْهَدُ اَنْ لا اِلهَ اِلاَّ الَّهُ”中找到单词位置。

4

2 回答 2

2

嗨,请参阅下面我创建的课程。它是如此基本,并没有担心内存消耗。你们可以优化自己。

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

如果您想检查不包含 nunation(harakath) 的阿拉伯语字符串,

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

如果您想在 String 中返回 Highlighed 或 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 回答