我如何检测字符串中的语言类型?

时间:2013-10-02 07:42:54

标签: android

问题已经改变。

我来自伊朗&我们的书面语言是波斯语;

我有一个计算键入字符的短信计数器;

我想当用户输入English字符(英文字符+唱歌+数字)时,将变量do ++计算为Number: 160

但是,如果总共有Persian个字符,那么将变量do ++计算为Number: 70

我该怎么做。

我对这段代码:var ucs2 = text.search(/[^\x00-\x7D]/) php中的 private final TextWatcher TextWatcher_Method = new TextWatcher() { public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { cnt2=matn_counter.length(); TextView counter=(TextView)findViewById(R.id.txt_counter); cnt1=(int) Math.ceil(cnt2/6); Integer cnt3=(cnt2%6); counter.setText(Integer.toString(cnt1)+"/"+Integer.toString(cnt3)); } } 的罚款用户进行了罚款波斯语或英语。

Java中的等效代码 - 什么是Android?

  

{{1}}

4 个答案:

答案 0 :(得分:2)

您无法从模拟器向设备发送“真实”短信,因为您没有SIM卡。

但是,如果您有多个正在运行,则可以将其从模拟器发送到模拟器。

要执行此操作,请检查以下问题:Sending and receiving text using android emulator

答案 1 :(得分:1)

以下是有关如何发送短信,拨打电话等的一些有用提示...... http://www.apurbadebnath.com/blog/android-emulator-tips/

答案 2 :(得分:1)

您可以使用Bidi课程。 欲了解更多信息,请查看this answer

答案 3 :(得分:0)

答案:

实际上你应该检查ASCII字符。

如果任何字符超出ASCII 范围(0x0000 to 0x007F),则消息将变为 70长度限制

另外,当你提出动议时,如果所有字符都是ASCII(例如英文字母或数字),则消息长度限制为160.

代码很简单:

public static boolean isASCIIMessage(String s) {
for (int i = 0; i < Character.codePointCount(s, 0, s.length()); i++) {
    int c = s.codePointAt(i);
    if (c >= 0x0000 && c <=0x007F)
        return false;
}
return true;

无论如何,如果你想检测波斯语输入,请参阅this answer