0

我想检查文本是否是阿拉伯文 如果是英文或韩文,则显示其他文本中的字母 显示错误消息说输入阿拉伯文,但如果我写阿拉伯文或英文,它会双向显示错误消息或任何其他语言和我 100% 确定我在文本中输入的字母与 if 语句中的 ascii 匹配,所以我做错了什么??!!!

公共类 MainActivity 扩展 Activity {

EditText te1;
EditText te2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    te1 = (EditText) findViewById(R.id.t1);
    te2 = (EditText) findViewById(R.id.t2);

final AlertDialog ad;
    ad = new AlertDialog.Builder(this).create();
    ad.setTitle("رسالة خطأ");
    ad.setMessage("رجاء  ادخل نص عربي  ");
    ad.setButton("موافق^_*", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(final DialogInterface dialog, final int which) {
            // TODO Auto-generated method stub
             dialog.dismiss(); 
        }

    });



    final Button v = (Button) findViewById(R.id.b1);
    v.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // imva.setImageResource(R.id.b1);






            for ( int j = 0 ; j < te1.length() ; j++)
            {
            String l =  te1.toString();
      char coverLetter =l.charAt(j);    

 if ((coverLetter >= 1569) && (coverLetter <= 1594) || (coverLetter >= 1600) && (coverLetter<= 1610))

      {     
          te2.setText("غ ");

      }
      else 
        {

            ad.show();
        }

        }// for 
        } 
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

4

1 回答 1

0

要检查阿拉伯文本,您可以使用正则表达式:

using System.Text.RegularExpressions;

bool isArabic = Regex.IsMatch(text,@"[\p{IsArabic}]+");

要考虑文本之间的空格:

bool isArabic = Regex.IsMatch(text,@"[\p{IsArabic}\s]+");
于 2013-04-26T20:30:22.893 回答