请教字符串中文数字转成阿拉伯数字的思路

krait 发布于 2013/01/13 10:49
阅读 445
收藏 1
比如在搜索栏输入“英语四级”,可以在后台查询“英语四级”和“英语4级”。现在想了解的是如何确定字符串中文数字所在的位置,然后如何进行替换。事先并不知道输入的内容是什么,可能输入“大学生六级”,“计算机四级等”。
加载中
0
StormFour
StormFour

oracle的:

select translate('英语一二三七级', '零一二三四五六七八九', '0123456789') en from dual;

这种方法不是更简单?

krait
krait
嗯,试了下这个果然很简单,非常感谢
0
恺哥
恺哥

你可以尝试将他们统一转换成拼音,然后通过拼音进行检索

汉字转拼音,可使用pinyin4j

krait
krait
通过拼音检索是类似搜索引擎的建议功能吗?
0
StormFour
StormFour
通过数据库进行这种转换就可以了
krait
krait
数据库是通过函数来实现这个功能吗?
0
Arrowing
Arrowing
我的思路是,如果查询字符串里有数字,就分出2个字符串,一个是阿拉伯的,一个是汉字的,多加个or查询条件咯,直观点。。
krait
krait
回复 @arrowing : 我还是有点不理解你的意思,可以加上简单的例子说明吗
Arrowing
Arrowing
回复 @krait : 替换之后与之前的比较下咯,就知道了
Arrowing
Arrowing
回复 @krait : 不管有没有都做替换不行吗? 0.0
krait
krait
我也是这个想法啊,但问题是如何确定字符串中有没有数字
0
Arrowing
Arrowing

php的:

$str = '英语四级';
$str2 = str_replace('四','4',$str);//特举例子
if($str != $str2){
    //有2个查询条件
}else{
    //没有中文数字
}

krait
krait
这个代码我懂,但是可能输入的是“英语六级”,或者其他数字,那又如何确定,不过现在我已经实现了部分,还是感谢你的思路
返回顶部
顶部