对于刚入门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如何分割出字符串中的数字?相关推荐

  1. java利用正则截取字符串中的数字

    java利用正则截取字符串中的数字 String str = "xxx第47297章33";String regex = "\\d*";Pattern p = ...

  2. java去除字母_java 字符串中去除 数字 字母 符号amp;amp;N*1*senten.Length=gt;M*M

    字符串中去除 数字 字母 符号 String str = "今天1@天%.气^64很?不?错.心情6666很好....."; String str1 = str.replaceAl ...

  3. 找出字符串中所有数字

    刚才网友在SKYPE问Insus.NET一个问题,在MS SQL中,怎样找出一个字符串所有数字. Insus.NET使用较简单与平常的方法,就是使用循环的方法,循环字符串中每一个字符,并插入至一个表变 ...

  4. xshell筛选出字符串中的数字,计算网络流量

    我们知道使用ifconfig 可以查看网卡的数据,包含收发的字节数,就是流量.如 root@fetmx6ull-s:~# ifconfig eth0 eth0 Link encap:Ethernet ...

  5. mysql提取数字_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代 ...

  6. 【笔记】分离字符串中的数字、字母和汉字

    package com.xtl.test; import java.util.regex.Matcher; import java.util.regex.Pattern; /**  * 字符串中分离数 ...

  7. mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在MysqL的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的MysqL函数,可以有效的从字符串中提取出数字. 该MysqL提取出字符串中的数字函数如下: CREATE ...

  8. java 提取字符串中前面的数字_Java提取字符串中的数字

    在Java中,如果输入一串由其他非数字字符隔开的数字,但却想要将其中的数字提取出来,网上已经给出多种解决方案,以下对这些方法及其对应的情况进行简单的总结,并提出自己的解决方案: 1.多个由不确定字符隔 ...

  9. java从字符串中提取数字

    1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...

最新文章

  1. 下午就要考试啦~~附上自己做的考试范围
  2. 构建百万访问量电子商务网站之LVS负载均衡(前端四层负载均衡器)[连载之电子商务系统架构]...
  3. jQuery笔记---选择器
  4. 机器学习系统设计与建议
  5. [分布式训练] 单机多卡的正确打开方式:PyTorch
  6. python编写个人信息_1、纯python编写学生信息管理系统
  7. java插入法排序_java算法之插入排序法
  8. 使用Gensim进行主题建模(二)
  9. 卡巴斯基安全部队2014,越来越像VISTA了
  10. win10桌面背景图片与锁屏背景图片提取(注册表寻找提取路径——亲测可用)
  11. Axure RP Pro 6.5.0.3050破解版下载(本帖链接与官方版本同步更新)
  12. 华北水利水电大学历年c语言试题,一百题C语言试题
  13. JavaScript 视频、图片转成Base64格式
  14. 100ask imx6ull开发板移植NXP官方UBOOT
  15. 谷歌邮箱SMTP小白教程
  16. 微信扫码充值 php,微信扫码支付,php版
  17. Fuel-openstack的搭建(二)
  18. linux 搭建 gitlab 私人服务器
  19. Pycharm——取消自动保存
  20. c语言流星雨程序下载,c语言 流星雨的实现.doc

热门文章

  1. 多项式加法(MOOC 翁凯 C语言源码)
  2. 金蝶kis可用库存查询_如何建立可用库存
  3. 致远(用友)OA或M1 漏洞复现
  4. H3C 路由器 QoS 的CBQ配置
  5. Java进阶(五十五)-Java Lambda表达式入门
  6. laravel rbac权限管理系统
  7. 区块链--默克尔树(Merkle Tree)
  8. 配置YOLOV5 小记(一)从英伟达驱动开始
  9. [telink sig mesh] 按键及任意按键长按清空网络
  10. 模拟CMOS集成电路设计入门学习(4)