JAVA如何分割出字符串中的数字?
对于刚入门JAVA的小白来说没有指定的API来完成这个操作,只能靠自己的想法来区别字符与整数。
在我刚入门的时候突发奇想,既然JAVA中有字符串转整数的API,那为什么不可以利用呢。于是利用转换异常想到了以下方法`
/*** 分割出字符串中的数字* @param str 需要进行分割的字符串* @return 分割出的整数*/public static int quString1(String str){char[] arr=str.toCharArray();StringBuilder builder = new StringBuilder();for (int i = 0; i < arr.length; i++) {try {// 如果传入的字符不是整数的话会抛出异常Integer.parseInt(arr[i]+"");} catch (Exception e) {// 如果抛出异常那这个字符肯定不是整数,所以直接跳过他就好了continue;}
// 如果没有抛出异常的话那这个字符肯定就是字符类型了builder.append(arr[i]);}return Integer.parseInt(builder.toString());}
当然以上方法虽然是可行的,但是利用异常来转换带来的隐患也是很大的,再继续研究了一段时间之后我发现了ACSLL码表。所有的字符、符号或者数字在ACSLL码表中都有一个对应的数,其中数字0-9对应的则是48-57。于是现在有了以下方法
/*** 分割出字符串中的数字* @param str 需要进行分割的字符串* @return 分割出的整数*/public static int quString(String str){char[] arr=str.toCharArray();StringBuilder builder = new StringBuilder();for (int i = 0; i < arr.length; i++) {// 如果字符的ACSLL码在48-57的范围内那肯定就是整数了if(arr[i] >= 48 && arr[i] <= 57) {builder.append(arr[i]);}}return Integer.parseInt(builder.toString());}
第二中方式虽然优化了很多,但是在做大量字符串分割的效率上还是慢了很多,于是乎在研究算法效率的道路上有了利用正则表达式的方法
/*** 分割出字符串中的数字* @param str 需要进行分割的字符串* @return 分割出的整数*/public static int quString2(String str){// 将指定字符串中的字符替换
// str.replaceAll(String regex, String replacement)
// 第一个参数是要替换掉str中的谁,第二个参数是要把第一个参数替换成啥。return Integer.parseInt(str.replaceAll("[^(0-9)]", ""));}
注意: 在以上三种方法中返回的都是int类型的参数,所以记住不要超出int类型的指定大小哦,或者你也可以直接将build.toString返回
在这大家可以根据自己的理解选取对应的方式,在这我还是推荐大家使用第三种方法
好了,这一期的内容就给大家总结到这了,欢迎大家在评论区进行纠正和补充
JAVA如何分割出字符串中的数字?相关推荐
- java利用正则截取字符串中的数字
java利用正则截取字符串中的数字 String str = "xxx第47297章33";String regex = "\\d*";Pattern p = ...
- java去除字母_java 字符串中去除 数字 字母 符号amp;amp;N*1*senten.Length=gt;M*M
字符串中去除 数字 字母 符号 String str = "今天1@天%.气^64很?不?错.心情6666很好....."; String str1 = str.replaceAl ...
- 找出字符串中所有数字
刚才网友在SKYPE问Insus.NET一个问题,在MS SQL中,怎样找出一个字符串所有数字. Insus.NET使用较简单与平常的方法,就是使用循环的方法,循环字符串中每一个字符,并插入至一个表变 ...
- xshell筛选出字符串中的数字,计算网络流量
我们知道使用ifconfig 可以查看网卡的数据,包含收发的字节数,就是流量.如 root@fetmx6ull-s:~# ifconfig eth0 eth0 Link encap:Ethernet ...
- mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...
- 【笔记】分离字符串中的数字、字母和汉字
package com.xtl.test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 字符串中分离数 ...
- mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享
因需要在MysqL的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的MysqL函数,可以有效的从字符串中提取出数字. 该MysqL提取出字符串中的数字函数如下: CREATE ...
- java 提取字符串中前面的数字_Java提取字符串中的数字
在Java中,如果输入一串由其他非数字字符隔开的数字,但却想要将其中的数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案: 1.多个由不确定字符隔 ...
- java从字符串中提取数字
1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...
最新文章
- 下午就要考试啦~~附上自己做的考试范围
- 构建百万访问量电子商务网站之LVS负载均衡(前端四层负载均衡器)[连载之电子商务系统架构]...
- jQuery笔记---选择器
- 机器学习系统设计与建议
- [分布式训练] 单机多卡的正确打开方式:PyTorch
- python编写个人信息_1、纯python编写学生信息管理系统
- java插入法排序_java算法之插入排序法
- 使用Gensim进行主题建模(二)
- 卡巴斯基安全部队2014,越来越像VISTA了
- win10桌面背景图片与锁屏背景图片提取(注册表寻找提取路径——亲测可用)
- Axure RP Pro 6.5.0.3050破解版下载(本帖链接与官方版本同步更新)
- 华北水利水电大学历年c语言试题,一百题C语言试题
- JavaScript 视频、图片转成Base64格式
- 100ask imx6ull开发板移植NXP官方UBOOT
- 谷歌邮箱SMTP小白教程
- 微信扫码充值 php,微信扫码支付,php版
- Fuel-openstack的搭建(二)
- linux 搭建 gitlab 私人服务器
- Pycharm——取消自动保存
- c语言流星雨程序下载,c语言 流星雨的实现.doc