设为首页 加入收藏

TOP

Android 中汉字转化为拼音(十)
2014-11-24 12:51:41 来源: 作者: 【 】 浏览:1
Tags:Android 汉字 化为 拼音
if (subString.length() > 0) {
addToken(subString, tokens, tokenType);
addOffsets(subStrOffset, shortSubStrOffset);
}
tokens.add(t);
for(int j=0; j < tokenSize;j++)
subStrOffset.append((char)mPos);
addOffsets(subStrOffset,shortSubStrOffset);
tokenType = Token.PINYIN;
caseTypePre = DialerSearchToken.FIRSTCASE;
mPos++;
} else {
//Comment out. Do not cover special characters SINCE they can not be input.
// if (tokenType != t.type && subString.length() > 0) {
// addToken(subString, tokens, tokenType);
// addOffsets(subStrOffset, shortSubStrOffset);
// caseTypePre = Token.FIRSTCASE;
// }else{
// caseTypeCurr = (character>='A' && character<='Z') Token.UPPERCASE:Token.LOWERCASE;
// if(caseTypePre == Token.LOWERCASE && caseTypeCurr == Token.UPPERCASE){
// addToken(subString, tokens, tokenType);
// addOffsets(subStrOffset, shortSubStrOffset);
// }
// caseTypePre = caseTypeCurr;
// }
// tokenType = t.type;
// Character c = Character.toUpperCase(character);
// if(c != null){
// subString.append(c);
// subStrOffset.append(mPos);
// }
mPos++;
}
}
//IF the name string is too long, cut it off to meet the storage request of dialer search.
if(mPos > 127)
break;
}
if (subString.length() > 0) {
addToken(subString, tokens, tokenType);
addOffsets(subStrOffset, shortSubStrOffset);
}
addSubString(tokens,shortSubStrOffset,subStrSet,offsets);
return subStrSet.toString();
}

private void addOffsets(final StringBuilder sb, final ArrayList shortSubStrOffset){
String str = sb.toString();
shortSubStrOffset.add(str);
sb.setLength(0);
}

private void addSubString(final ArrayList tokens, final ArrayList shortSubStrOffset,
StringBuilder subStrSet, StringBuilder offsets){
if(tokens == null || tokens.isEmpty())
return;

int size = tokens.size();
int len = 0;
StringBuilder mShortSubStr = new StringBuilder();
StringBuilder mShortSubStrOffsets = new StringBuilder();
StringBuilder mShortSubStrSet = new StringBuilder();
StringBuilder mShortSubStrOffsetsSet = new StringBuilder();

for(int i=size-1; i>=0 ; i--){
String mTempStr = tokens.get(i).target;
len += mTempStr.length();
String mTempOffset = shortSubStrOffset.get(i);
if(mShortSubStr.length()>0){
mShortSubStr.deleteCharAt(0);
mShortSubStrOffsets.deleteCharAt(0);
}
mShortSubStr.insert(0, mTempStr);
mShortSubStr.insert(0,(char)len);
mShortSubStrOffsets.insert(0,mTempOffset);
mShortSubStrOffsets.insert(0,(char)len);
mShortSubStrSet.insert(0,mShortSubStr);
mSh
首页 上一页 7 8 9 10 下一页 尾页 10/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇S3C6410硬件DISPLAY CONTROLLER(.. 下一篇Linux高端内存映射(下)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)