我见过的每种编程语言都是基于拉丁字母的,考虑到我住在加拿大,这并不奇怪...但是只有基于其他字母表的编程语言或其他明亮的计算机科学家才真正有意义世界将不得不学习一个新的字母表来继续在该领域.我知道一个事实是,在其他字母表中占主导地位的国家的人们开发基于拉丁字母的语言(例如来自日本的Ruby),但是编程语言基于阿拉伯语或西里尔语等其他字母表有多常见,甚至编写非字母而非日志汉字等系统的系统?也是这些语言中的任何一种在广泛使用中,或者它们主要用作教学工具?自从我开始编程以来,这一直困扰着我,而且我从来没有遇到过能够想到真正答案的人.
我正在Android中为Amharic语言设计自定义键盘,但以下内容适用于许多其他非英语语言.
两个或多个键组合转换为一个字符.因此,如果用户键入'S',键盘将输出'ሰ'...如果他们跟着字母'A',则'ሰ'将替换为'ሳ'.
我设法得到一个解决方案,如下所示,通过查看光标前的字符并根据Map检查它.但是,我想知道是否有更简单,更清洁的解决方案.
public void onKey(int primaryCode, int[] keyCodes) {
InputConnection ic = getCurrentInputConnection();
HashMap<String, Integer> en_to_am = new HashMap<String, Integer>();
CharSequence pChar = ic.getTextBeforeCursor(1, 0);
int outKey = 0;
//build a hashmap of 'existing character' + 'new key code' = 'output key code'
en_to_am.put("83", 4656);
en_to_am.put("?65", 4659);
try {
//see if config exists in hashmap for 'existing character' + 'new key code'
if (en_to_am.get(pChar.toString() + primaryCode) != null) {
outKey = en_to_am.get(pChar.toString() + primaryCode);
ic.deleteSurroundingText(1, 0);
} else { …
Run Code Online (Sandbox Code Playgroud) MySql全文搜索是否适用于非拉丁语言?(希伯来语,阿拉伯语,日语......)
另外:做了一些测试......希伯来语有一些问题.示例:名称מו ס ינזון发音一样מו ש ינזון但寻找一个找不到其他的,因为这是在希伯来文常见的拼写错误,看来我将不得不做一些数据操作为它完美地工作.
想要匹配非拉丁字符。试过了。根据我的理解 if (a.matches("[\\x8A-\\xFF]+"))
应该返回 true 但它是 false。
String a = "Ž";
if (a.matches("[\\x8A-\\xFF]+"))
{
}
Run Code Online (Sandbox Code Playgroud)