TextView で Nunation を含むアラビア語の単語を検索し、これを強調表示したい。
質問する
233 次
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 に答える