繁体中文
设为首页
加入收藏
当前位置:程序开发首页 >> Perl >> 中英文混合字符截取

中英文混合字符截取

2005-01-09 20:45:44  作者:wildhorse01  来源:互联网  浏览次数:55  文字大小:【】【】【
简介:用perl截取字符串,字符串中含有中文、英文、数字和各种符号,也包含中文标点符号,截取一定数量的字符,并且截取之后中文是完整的,不会出现乱码或问号。sub makelen($$)  {   my($sstr,$slen)=...
关键字:中英文 字符 混合

用perl截取字符串,字符串中含有中文、英文、数字和各种符号,也包含中文标点符号,截取一定数量的字符,并且截取之后中文是完整的,不会出现乱码或问号。

sub makelen($$)

{

my($sstr,$slen)=@_;

my $makelen,$parity;

$mslen=length($sstr);

if($mslen>$slen)

{

for($mn=0;$mn<$slen;$mn++) #在要求的长度内

{

$ss=substr($sstr,$mn,1);

if(ord($ss)<127) #为英文

{

$parity+=1;

}

}

if($parity%2==1) #含英文长度为奇数

{

if($slen%2==1) #如果所要求的长度也为奇数

{

$tmpstr=substr($sstr,0,$slen);

}

else #所要求的长度为偶数

{

$tmpstr=substr($sstr,0,$slen-1);

}

}

else #含英文长度为偶数或者为0,0也为偶数

{

if($slen%2==1) #如果所要求的长度为奇数

{

$tmpstr=substr($sstr,0,$slen-1);

}

else #所要求的长度为偶数

{

$tmpstr=substr($sstr,0,$slen);

}

}

$makelen=$tmpstr;

}

else

{

$makelen=$sstr;

}

return $makelen;

}

责任编辑:admin
相关文章