提取数字问题
来源:互联网 发布:python 远程ssh 编辑:程序博客网 时间:2024/06/07 22:53
问题描述:提取出一字符串中的数字,将数字相加求和。如果某个数字右边是字母,则舍去该数字。例如:123abc5++.提取数字:12和5.求和为17.
两种方法:
方法一:一个一个字符进行遍历,判断是否符合条件。
public class SumFromStr { static int pos = 0; public static void main(String[] args) { String str = "123a123*25AFA***12545afe"; char[] chs = str.toCharArray(); int sum = 0; int num = 0; while((num=GetNum(chs,pos))!=0){ sum+=num; } System.out.println(sum); } public static int GetNum(char[] chs,int i){ String str=""; for(int j=i;j<chs.length;j++){ if(chs[j]>='0'&&chs[j]<='9'){ str+=chs[j]; if((chs[j+1]>='a'&&chs[j+1]<='z')||(chs[j+1]>='A'&&chs[j+1]<='Z')){ str = str.substring(0, str.length()-1); pos=j+2; return Integer.parseInt(str); }else{ if(!(chs[j+1]>='0'&&chs[j+1]<='9')){ pos=j+2; return Integer.parseInt(str); } } } } return 0; }}
方法二:使用正则表达式提取数字
public class SumFromStr { public static void main(String[] args) { String str = "123a123*25AFA***12545afe"; String regex = "\\d[a-zA-Z]"; str = str.replaceAll(regex, "*"); System.out.println(str); String[] strs = str.split("[^0-9]+"); System.out.println(Arrays.toString(strs)); int sum=0; for(String num:strs){ sum+=Integer.parseInt(num); } System.out.println(sum); }}
阅读全文
5 0
- 提取数字问题
- 数字sring 提取单个数字
- 正则表达式提取数字
- 数字声音提取
- 提取数字,英文,中文
- 提取字符串中的数字
- 提取字符串中的数字
- matlab 字符串提取数字
- 字符串提取数字
- 字符串中提取数字
- 字符串提取数字
- 字符串中提取数字
- 字符串数字的提取
- 提取字符串中的数字
- 提取字符串中的数字
- 字符串 汉字/数字提取
- 提取 字符串中 数字
- 字符串提取数字
- 虚拟机设置bios第一启动为u盘
- 167. Two Sum II
- 【第一章 Web MVC简介】从CGI到Servlet到JSP到Model1再到Web MVC
- 验证 OpenStack
- Edge Computing Implementation Based on Docker Containers
- 提取数字问题
- java 类的继承
- Unity_DOTween动画的学习(三)_Sequence的示例演示
- 莫比乌斯反演公式的证明
- 超实用!!ORACLE数据库DBA运维常用的语句脚本
- 【C/C++】树的同构
- android 图形处理
- spark学习记录
- matlab 图像处理函数总结