怎样判断一个字符串中不能包括除汉字以外的字符?

aiq 2010-08-23 05:47:01
字符串中除了汉字,不能有其他字符,比如字母,标点符号等,怎样写个函数,有就返回1,没有就返回0
...全文
224 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ai0fan 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 aiq 的回复:]
谢谢各位,但测试还有问题,比如汉字 “玥”

上面各位给出的都认为这个不是汉字
[/Quote]

function HasHz(s: widestring): Integer;
方法内容不变
Harryfin 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 biekvn 的回复:]

如果只获得包含不包含的结果,那就这样看行不行。

Delphi(Pascal) code

function check(const src: string): Boolean;
begin
Result := Length(WideString(Trim(src))) = Length(AnsiString(Trim(src))) div 2;
end;
[/Quote]
不行的,全角字符是2字节
麦客来了 2010-08-25
  • 打赏
  • 举报
回复
如果只获得包含不包含的结果,那就这样看行不行。


function check(const src: string): Boolean;
begin
Result := Length(WideString(Trim(src))) = Length(AnsiString(Trim(src))) div 2;
end;
aiq 2010-08-25
  • 打赏
  • 举报
回复
谢谢各位,但测试还有问题,比如汉字 “玥”

上面各位给出的都认为这个不是汉字
亮剑_ 2010-08-24
  • 打赏
  • 举报
回复
1、确认汉字编码
2、每种编码都有一个码的范围,且一般都是连续的
据此判定
winstonbonaparte 2010-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 enter89 的回复:]

没c#版 的???
[/Quote]
自己把这代码翻译成C#的啊
ai0fan 2010-08-24
  • 打赏
  • 举报
回复

function HasHz(s: string): Integer;
const
CN_NUMBER = '12345678901234567890';
CN_LETTER =
' ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
' abcdefghijklmnopqrstuvwxyz' +
' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
//基本上常用的就是这些符号、不够的时候再加
CN_SIGN = '^.,/\[]!@#%&*()_+<>?:"{}|`-=~$;'''
+ '.,/\[]!@#%&*()_+<>?:"{}|`-=~$;'。';
var
i: Integer;
begin
Result := 0;
for i := 1 to Length(s) do
begin
if Ord(s[i]) < 128 then //过滤单字节
begin
Result := 1;
Break;
end
else if Pos(s[i], CN_NUMBER) > 0 then //数字
begin
Result := 1;
Break;
end
else if Pos(s[i], CN_LETTER) > 0 then //字母
begin
Result := 1;
Break;
end
else if Pos(s[i], CN_SIGN) > 0 then //符号
begin
Result := 1;
Break;
end
end;
end;

Waldenz 2010-08-24
  • 打赏
  • 举报
回复
没c#版 的???
bdmh 2010-08-24
  • 打赏
  • 举报
回复
function HasHz(s: string): Integer;
var
i:Integer;
begin
Result := 0;
for i := 1 to Length(s) do
begin
if Ord(s[i])<128 then
begin
Result := 1;
Break;
end;
end;
end;
lyhoo163 2010-08-23
  • 打赏
  • 举报
回复
汉字是双字节(Byte)组成,第一字节的属性是mbLeadByte。由此可以测定字符串中有多少汉字。

function ChineseS(S:string):integer;
var s:string;
i,k:integer;
begin
result:=0;
k:=0;
for i:=1 to length(S) do
if (ByteType(S,i)=mbLeadByte) then K:=K+1;
result:=K;
end;
namoemitoufo 2010-08-23
  • 打赏
  • 举报
回复
用正则表达式撒。。。。

var str=document.getElementById("name").value;
var reg = /^[\u4e00-\u9fa5]+$/i;
if (!reg.test(str))
{
alert("请输入中文名字!");

return 1;
}
return 0;

lhy 2010-08-23
  • 打赏
  • 举报
回复
按照汉字的范围一个字符一个字符的核对
代码转载自:https://pan.quark.cn/s/a4b39357ea24 本文重点阐述了利用 LabVIEW 软件构建的锁相放大器的设计方案及其具体实施流程,并探讨了该设备在声波相位差定位系统的实际运用情况。 锁相放大器作为一项基础测量技术,其核心功能在于能够精确锁定微弱信号的频率参数并完成相关测量工作。 在采用 LabVIEW 软件开发的锁相放大器系统,通过计算测量信号与两条参考信号之间的互相关函数,实现对微弱信号的频率锁定,同时输出被测信号的幅值信息。 虚拟仪器技术是一种基于计算机硬件平台的仪器系统,其显著特征在于用户可以根据实际需求自主设计仪器功能,配备虚拟化操作界面,并将测试功能完全由专用软件程序实现。 虚拟仪器系统的基本架构主要由计算机主机、专用软件程序以及硬件接口模块等核心部件构成。 虚拟仪器最突出的优势在于其功能完全取决于软件编程,用户可以根据具体应用场景灵活调整系统功能参数。 在基于 LabVIEW 软件开发的锁相放大器系统,主要运用 LabVIEW 软件平台完成锁相放大器功能的整体设计。 LabVIEW 作为一个图形化编程环境,能够高效地完成虚拟仪器的开发工作。 借助 LabVIEW 软件,可以快速构建锁相放大器的用户操作界面,并且可以根据实际需求进行灵活调整和功能扩展。 锁相放大器系统的关键构成要素包括测量信号输入通道、参考信号输入通道、频率锁定处理单元以及信号幅值输出单元。 测量信号是系统需要检测的对象,参考信号则用于引导系统完成对测量信号的频率锁定。 频率锁定处理单元负责实现测量信号的锁定功能,信号幅值输出单元则负责输出被测信号的幅值大小。 在锁相放大器的实际实现过程,系统采用了双路参考信号输入方案来锁定测量信号。 通过分析两路参考信号之间的相...
边缘计算环境基于启发式算法的深度神经网络卸载策略(Matlab代码实现)内容概要:本文介绍了在边缘计算环境,利用启发式算法实现深度神经网络任务卸载的策略,并提供了相应的Matlab代码实现。文章重点探讨了如何通过合理的任务划分与调度,将深度神经网络的计算任务高效地卸载到边缘服务器,从而降低终端设备的计算负担、减少延迟并提高整体系统效率。文涵盖了问题建模、启发式算法设计(如贪心策略、遗传算法、粒子群优化等可能的候选方法)、性能评估指标(如能耗、延迟、资源利用率)以及仿真实验结果分析等内容,旨在为边缘智能计算的模型推理优化提供可行的技术路径。; 适合人群:具备一定编程基础,熟悉Matlab工具,从事边缘计算、人工智能、物联网或智能系统优化方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究深度神经网络在资源受限设备上的部署与优化;②探索边缘计算环境下的任务卸载机制与算法设计;③通过Matlab仿真验证不同启发式算法在实际场景的性能表现,优化系统延迟与能耗。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注算法实现细节与仿真参数设置,同时可尝试复现并对比不同启发式算法的效果,以深入理解边缘计算DNN卸载的核心挑战与解决方案。

16,743

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧