socketref,再见!高德

https://github.com/adoggie

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用链接

留言簿(54)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

代码很容易阅读,以前做蓝牙项目时用户电话本搜索只用


static public string GetChineseSpell(string strText)
{
int len = strText.Length;
string myStr 
= "";
for(int i=0;i<len;i++)
{
myStr 
+= getSpell(strText.Substring(i,1));
}
return myStr;
}

static public string getSpell(string myChar)
{
byte[] arrCN = System.Text.Encoding.Default.GetBytes(myChar);
if(arrCN.Length > 1)
{
int area = (short)arrCN[0];
int pos = (short)arrCN[1];
int code = (area<<8+ pos;
int[] areacode = {45217,45253,45761,46318,46826,47010,47297,47614,48119,48119,49062,49324,49896,50371,50614,50622,50906,51387,51446,52218,52698,52698,52698,52980,53689,54481};
for(int i=0;i<26;i++)
{
int max = 55290;
if(i != 25) max = areacode[i+1];
if(areacode[i]<=code && code<max)
{
return System.Text.Encoding.Default.GetString(new byte[]{(byte)(65+i)});
}
}
return "*";
}
else return myChar;
}


posted on 2008-05-07 01:28 放屁阿狗 阅读(2054) 评论(4)  编辑 收藏 引用 所属分类: WINCE

Feedback

# re: 获取汉字的首拼字母(java) 2008-05-07 08:17 aaron
博主你好,在我的jdk1.6中,你的代码里面的System.Text.Encoding.Default.GetBytes怎么没有啊,编译不过去,不知道为什么  回复  更多评论
  

# re: 获取汉字的首拼字母(java) 2008-05-07 09:10 abettor
请问System.Text.Encoding.Default.GetBytes()和System.Text.Encoding.Default.GetString()是什么东东?
  回复  更多评论
  

# re: 获取汉字的首拼字母(java) 2008-05-07 11:45 bruceteen
根据你的思路,用C++翻写了一下

char xxx_gb2312( unsigned long word )
{
static const unsigned long areacode[] = {
0xB0A1, 0xB0C5, 0xB2C1, 0xB4EE, 0xB6EA, 0xB7A2, 0xB8C1 // a b c d e f g
, 0xB9FE, 0xBBF7, 0xBBF7, 0xBFA6, 0xC0AC, 0xC2E8, 0xC4C3 // h i j k l m n
, 0xC5B6, 0xC5BE, 0xC6DA, 0xC8BB, 0xC8F6, 0xCBFA // o p q r s t
, 0xCDDA, 0xCDDA, 0xCDDA, 0xCEF4, 0xD1B9, 0xD4D1 // u v w x y z
, 0xF7FF };

if( word>=areacode[0] && word<areacode[26] && (word&0xFF)>0xA0 && (word&0xFF)<0xFF )
{
for( int i=0; i<26; ++i )
{
if( word>=areacode[i] && word<areacode[i+1] )
return 'A'+i;
}
}
return '?';
}

#include <string>
std::string GetChineseSpell( const char* ptext ) // for test
{
std::string s;

for( const unsigned char* p=(const unsigned char*)ptext; *p; )
{
if( *p>0xA0 )
{
s += xxx_gb2312( p[0]<<8 | p[1] );
p += 2;
}
else
{
s += xxx_gb2312( p[0] );
p += 1;
}
}

return s;
}

#include <iostream>
using namespace std;

int main( void )
{
cout << GetChineseSpell("获取汉字的首拼字母") << endl;

return 0;
}
  回复  更多评论
  

# re: 获取汉字的首拼字母(java) 2008-05-07 12:54 放屁阿狗
老兄还真是有心啊,其实理解程序的思路用不同语言实现就很简单的事情了  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理