首页 / 知识
关于字符串:Ruby中的安全整数解析
2023-04-14 12:52:00

Safe integer parsing in Ruby
我有一个字符串,例如
我知道您可以简单地执行 编辑:我正在寻找这样做的标准方法,而无需使用正则表达式。 Ruby内置了以下功能:
正如Joseph Pecoraro在回答中所指出的那样,您可能要注意观察有效的非十进制数字的字符串,例如以 Ruby 1.9.2为基数添加了可选的第二个参数,因此可以避免上述问题:
这可能起作用:
还请注意当前接受的解决方案可能会对解析十六进制,八进制和二进制数产生影响:
在以 可接受的解决方案的另一个意外行为(使用1.8、1.9即可):
因此,如果不确定传入的内容,请确保添加 我喜欢Myron的答案,但是它遭受了"我不再使用Java / C#,所以我再也不会使用继承"的Ruby疾病了。打开任何类都可能充满危险,应谨慎使用,尤其是当它是Ruby核心库的一部分时。我并不是说永远不要使用它,但是通常很容易避免,并且有更好的选择,例如
然后,当您希望使用可能是数字的字符串时,很清楚您在做什么,并且不会破坏任何核心类,例如
您可以在初始化中添加各种其他检查,例如检查二进制数等。但是,最主要的是Ruby是为人服务的,而为人服务则意味着清晰。通过对象的变量名和类名来命名它使事情变得更加清晰。 我必须在上一个项目中处理此问题,并且实现方式相似,但又有所不同:
可能不是最干净的方法,但是应该可以。 回复:克里斯的答案 您的实现让" 1a"或" b2"之类的东西通过。怎么样呢:
输出:
|
最新内容
相关内容
linux命令执行很慢?
linux命令执行很慢?,软件,系统,工具,分析,机构,服务,培训,教育,数字,数据,Linux执行命令慢有啥原因所以你说的慢,有好多原因,1可能是你LS的目录linux命令行执行py?
linux命令行执行py?,系统,环境,官网,一致,文件,程序,脚本,源文件,后台,终端,linux下用命令执行一个.py区别很大,因为用./执行的只能是可执行文linux查看执行命令?
linux查看执行命令?,系统,服务,情况,信息,命令,暂停,标准,概念,实时,第一,linux系统通过命令行查看cpu信息1、首先我们介绍lscpu命令,该条命令linux命令连续执行?
linux命令连续执行?,连续,通信,工具,数据,代码,命令,设备,系统,发行,情况,如何让linux连续执行几个命令,出错进停止1、[;]如果被分号(;)所分隔的linux执行命令卡住?
linux执行命令卡住?,系统,环境,密码,数据,信息,分析,软件,异常,服务,命令,Linux服务器上敲命令卡是什么原因1、数据库软件安装正常。在数据库linux拼接字符串命令?
linux拼接字符串命令?,系统,工作,代码,工具,名称,信息,地址,时间,数据,命令,linux中用shell时奇怪的字符串拼接和时间计算问题如果想要在变量linux地址转换命令是?
linux地址转换命令是?,地址,系统,代码,密码,网络,信息,服务,电脑,设备,报告,配置LINUX的IP命令1、(1)Ifconfig命令 第一种使用ifconfig命令配置linux命令执行不动了?
linux命令执行不动了?,系统,电脑,数据,管理,信息,密码,命令,环境,地方,分析,linux中为什么我的这条命令执行不了。我是菜鸟可能是配置出现了问linux无效对象的命令?
linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,linux疑问:普通用户的ifconfig命令无法执行,如何解决?建议这个操linux脚步中执行命令?
linux脚步中执行命令?,工具,代码,命令,名称,系统,连续,环境,发行,文件,终端,linux中.sh脚本文件中命令的执行顺序确保.sh文件具有执行权限:在终linux后台执行命令?
linux后台执行命令?,暂停,状态,系统,服务,标准,命令,后台,地方,进程,终端,linux系统中挂起操作和强制结束操作(后台运行程序方法)1、结束进程linux执行权限命令行?
linux执行权限命令行?,地址,电脑,系统,数字,工作,权限,目录,文件,新增,信息,Linux命令行执行root权限的命令1、目录方法1:从终端获取root权限打