Java求字符串中数字的和
java对某一字段内的数值进行求和计算的方法

java对某一字段内的数值进行求和计算的方法【原创版3篇】目录(篇1)1.Java 概述2.对某一字段内的数值进行求和的算法原理3.Java 代码示例4.结论正文(篇1)【1.Java 概述】Java 是一种广泛使用的计算机编程语言,它具有跨平台、面向对象、易于学习等特点。
Java 的广泛应用,使得对 Java 相关技术的需求越来越大,如对某一字段内的数值进行求和计算的方法。
【2.对某一字段内的数值进行求和的算法原理】假设有一个二维数组,其中每一行表示一个记录,每一列表示一个字段。
要求计算某一字段内的所有数值之和,可以采用以下算法:1.遍历二维数组,获取某一字段的所有数值;2.将这些数值累加,得到总和;3.返回总和。
【3.Java 代码示例】下面是一个简单的 Java 代码示例,展示了如何对二维数组中某一字段内的数值进行求和计算:```javapublic class SumOfField {public static void main(String[] args) {// 示例二维数组int[][] data = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};// 定义求和的方法int sum = sumOfField(data, 1); // 求和的方法参数:二维数组和需要求和的字段索引// 输出结果System.out.println("某一字段内的数值之和为:" + sum);}// 对某一字段内的数值进行求和计算的方法public static int sumOfField(int[][] data, int fieldIndex) {int sum = 0;for (int i = 0; i < data.length; i++) {sum += data[i][fieldIndex];}return sum;}}```【4.结论】通过以上代码示例,我们可以看到如何使用 Java 编写一个简单的程序,对二维数组中某一字段内的数值进行求和计算。
专科—程序设计基础题库-java

专科15级《程序设计基础》题库100道<说明>1、 总共抽8道题,每小题12.5分,共100分。
按题型:顺序(1道)、分支(1道)、单循环(2道)、多循环(1道)、数组(1道)、字符串(1道)、方法(1道)。
1、 按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。
2、考试要求:写代码实现(其中分支(1道)、单循环(2道)、多循环(1道)共四道要求先画出流程图,再根据流程图写代码),理论考试,2个小时。
一、顺序结构(10道抽1道)2、 请定义4个整型变量,并打印输出这4个变量的加、减、乘、除后的结果。
(易)3、 将华氏温度转化成摄氏温度。
公式为:C=(5/9)*(F-32),其中F 为华氏温度,C 为摄氏温度。
请根据给定的华氏温度输出对应的摄氏温度。
(易)4、 根据观察,蟋蟀的名叫频率与温度有关,具体的公式为T=(c+40)/10.其中,c 代表蟋蟀每分钟鸣叫数,T 代表华氏温度。
请根据蟋蟀每分钟的鸣叫数输出相应的华氏温度。
(易)5、 编写程序,定义0~1000的一个整数并将其各位数字之和赋给一个整数,如整数932,各位数字之和为14. (较易)6、 编程实现两个整数交换位置,例如:int x = 6,y = 9,交换后 x = 9,y = 6。
(较易)7、 求空间两点之间的距离。
(提示:空间一点(x,y,z ),可由三个实数来描述)(难)8、 已知圆的半径,求圆的面积。
(较易)9、 已知一个三角形的三边边长分别为a,b,c ,利用海伦公式求三角形的面积。
(较难)海伦公式:10、 求两数平方和的算术根。
(较难) 11、 给定一段时间求出它的秒数。
(如计算2小时 17分30秒等于多少秒)(较易)二、分支结构(20道抽1道)12、 两个整数比较大小,输出较大值。
(易) 13、 三个整数比较大小,输出最大值。
(较易) 14、 求下列函数中y 的值。
(较易)y=10 (x=0) y=3x+5 (x>0) y=x-2 (x<0)15、 判断某年是否为闰年。
java基本语法—字符串与数值型数据转换、从键盘输入数据

仲恺农业工程学院实验报告纸计算科学与工程(院、系)网络工程专业083 班组Java语言程序设计课学号200810224311 452642407 实验日期2010/10/22 教师评定实验一:Java基本语法—算术运算符与逻辑运算符一、实验目的1、掌握算术运算符的求模运算以及自增和自减运算2、掌握逻辑运算符中的与、或、非运算二、实验要求1、编写一个Java程序,在程序中进行求模运算以及自增和自减运算。
2、编写一个Java程序,在程序中进行与、或、非运算。
三、程序模板1、//Arithmetic1.javapublic class Arithmetic1{public static void main(String args[]){int a=10;int b=6;int s=0;s=a%b;System.out.println("s="+s);a++;b--;s=++a + --b;System.out.println("a="+a);System.out.println("b="+b);System.out.println("s="+s);}}2、//Logic.javapublic class Logic {public static void main(String args[]) {boolean a,x,y,z;a=5>6; //比较数字5是否大于数字6,将结果赋给ax=!a;//对变量a进行非运算,将结果赋给xy=a&&x;//对变量a和变量x进行与运算,将结果赋给y z=x||y;//对变量x和变量y进行或运算,将结果赋给z System.out.println("a="+a);System.out.println("x="+x);System.out.println("y="+y);System.out.println("z="+z);}}四、程序运行结果1、s=4a=12b=4s=162、a=falsex=truey=falsez=true。
java提取字符串数字,Java获取字符串中的数字

java提取字符串数字,Java获取字符串中的数字具体的⽅法如下:/*** 把字符串数字类型的数字取出来(只取遇到⾮数字字符前,包括空格)* @param str* <li>"1-0我5013我24a5c6" 》 1</li>* <li>"10 5 013我24a 5c6" 》 10</li>* <li>"105013我24a5c6" 》 105013</li>* <li>"000" 》 000</li>* <li>"00010123600" 》 00010123600</li>* <li>"好20我1a2b" 》空字符串</li>* @return*/public static String getPrefixNumberText(String str){if(StringUtils.isBlank(str)){throw new RuntimeException("参数str不能为空");}StringBuffer number = new StringBuffer("");String[] strArray = str.split("");for (int i=1; i<strArray.length; i++) {if(RegUtils.isNumberText(strArray[i])){number.append(strArray[i]);}else{break;}}return number.toString();}/*** 把字符串数字类型的数字取出来(只取遇到⾮数字字符前,但不包括空格)* @param str* <li>"1-0我5013我24a5c6" 》 1</li>* <li>"10 5 013我24a 5c6" 》 105013</li>* <li>"105013我24a5c6" 》 105013</li>* <li>"000" 》 000</li>* <li>"00010123600" 》 00010123600</li>* <li>"00010123我600" 》 00010123</li>* @return*/public static String getPrefixNumberTextIgnoreSpace(String str){if(StringUtils.isBlank(str)){throw new RuntimeException("参数str不能为空");}StringBuffer number = new StringBuffer("");String[] strArray = str.split("");for (String string : strArray) {if(!StringUtils.isBlank(string)){if(RegUtils.isNumberText(string)){number.append(string);}else{break;}}}return number.toString();}/*** 把字符串数字类型的所有数字取出来* @param str* <li>"1-000我10123我60#0" 》 100010123600</li>* <li>"00010-+123我600" 》 00010123600</li>* <li>"我是2019我600" 》 2019600</li>* <li>"我是20 -19我 600" 》 2019600</li>* @return*/public static String getNumberText(String str){if(StringUtils.isBlank(str)){throw new RuntimeException("参数str不能为空");}StringBuffer number = new StringBuffer("");String[] strArray = str.split("");for (String string : strArray) {if(!StringUtils.isBlank(string) && RegUtils.isNumberText(string)){number.append(string);}}return number.toString();}/*** 把字符串数字类型的数字取出来(只取遇到⾮数字字符前,不包括空格)转换成数字* @param str* <li>"1-0我5013我24a5c6" 》 1</li>* <li>"10 5 013我24a 5c6" 》 105013</li>* <li>"105013我24a5c6" 》 105013</li>* <li>"000" 》 0</li>* <li>"00010123600" 》 10123600</li>* @return*/public static long getPrefixNumber(String str){String number = getPrefixNumberTextIgnoreSpace(str);if(StringUtils.isBlank(number)){return 0;}//去掉前⾯为0的,如0099变成99String[] texts = number.split("");StringBuffer numbers = new StringBuffer("");for (String text : texts) {if(numbers.length() < 1){if(text == "0"){continue;}}numbers.append(text);}if(numbers.length() < 1){return 0;}return Long.parseLong(numbers.toString());}/*** 把字符串数字类型的数字取出来转换成数字* @param str* <li>"1-000我10123我60#0" 》 100010123600</li>* <li>"00010-+123我600" 》 10123600</li>* <li>"我是2019我600" 》 2019600</li>* <li>"我是20 -19我 600" 》 2019600</li>* @return*/public static long getNumber(String str){String number = getNumberText(str);if(StringUtils.isBlank(number)){return 0;}//去掉前⾯为0的,如0099变成99String[] texts = number.split("");StringBuffer numbers = new StringBuffer("");for (String text : texts) {if(numbers.length() < 1){if(text == "0"){continue;}}numbers.append(text);}if(numbers.length() < 1){return 0;}return Long.parseLong(numbers.toString());}正则表达式⼯具类:import java.util.regex.Matcher;import java.util.regex.Pattern;import ng.StringUtils;/*** 正则表达式⼯具类**/public class RegUtils {/*** 邮箱*/public static final String EMAIL = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";/*** ⼿机号码*/public static final String PHONE = "^(1[3-9]([0-9]{9}))$";/*** 仅中⽂*/public static final String CHINESE = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";/*** 整数*/public static final String INTEGER = "^-?[1-9]\\d*$";/*** 数字*/public static final String NUMBER = "^([+-]?)\\d*\\.?\\d+$";/*** 正整数*/public static final String INTEGER_POS = "^[1-9]\\d*$";/*** 浮点数*/public static final String FLOAT = "^([+-]?)\\d*\\.\\d+$";/*** 正浮点数*/public static final String FLOAT_POS = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$";/*** 是否为正整数数字,包括0(00,01⾮数字)*/public static final String INTEGER_WITH_ZERO_POS = "^(([0-9])|([1-9]([0-9]+)))$";/*** 是否为整数数字,包括正、负整数,包括0(00,01⾮数字)*/public static final String NUMBER_WITH_ZERO = "^((-)?(([0-9])|([1-9]([0-9]+))))$";/*** 是否为数字字符串*/public static final String NUMBER_TEXT = "^([0-9]+)$";/*** 数字(整数、0、浮点数),可以判断是否⾦额,也可以是负数*/public static final String NUMBER_ALL = "^((-)?(([0-9])|([1-9][0-9]+))(\\.([0-9]+))?)$";/*** QQ,5-14位*/public static final String QQ = "^[1-9][0-9]{4,13}$";/*** IP地址*/public static final String IP = "((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))";/*** 邮编*/public static final String POST_CODE = "[1-9]\\d{5}(?!\\d)";/*** 普通⽇期*/public static final String DATE = "^[1-9]\\d{3}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$";/*** 复杂⽇期,不区分闰年的2⽉* ⽇期格式:2017-10-19* 或2017/10/19* 或2017.10.19* 或2017年10⽉19⽇* 最⼤31天的⽉份:(((01|03|05|07|08|10|12))-((0[1-9])|([1-2][0-9])|(3[0-1])))* 最⼤30天的⽉份:(((04|06|11))-((0[1-9])|([1-2][0-9])|(30)))* 最⼤29天的⽉份:(02-((0[1-9])|([1-2][0-9])))*/public static final String DATE_COMPLEX = "^(([1-2]\\d{3})(-|/|.|年)((((01|03|05|07|08|10|12))(-|/|.|⽉)((0[1-9])|([1-2][0-9])|(3[0-1])))|(((04|06|11))(-|/|.|⽉)((0[1-9])|([1-2][0-9])|(30)))|(02-((0[1-9])|([1-2][0-9]))))(⽇)?)$";/*** 复杂的⽇期,区分闰年的2⽉* 这个⽇期校验能区分闰年的2⽉,格式如下:2017-10-19* (见:/article/50905.htm)* ^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$*/public static final String DATE_COMPLEX_LEAP_YEAR = "^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$" /*** 正则表达式校验,符合返回True* @param regex 正则表达式* @param content 校验的内容* @return*/public static boolean isMatch(String regex, CharSequence content){return Pattern.matches(regex, content);}/*** 校验⼿机号码* @param mobile* @return*/public static final boolean isMoblie(String mobile){boolean flag = false;if (null != mobile && !mobile.trim().equals("") && mobile.trim().length() == 11) {Pattern pattern = pile(PHONE);Matcher matcher = pattern.matcher(mobile.trim());flag = matcher.matches();}return flag;}/*** 校验邮箱* @param value* @return*/public static final boolean isEmail(String value){boolean flag = false;if (null != value && !value.trim().equals("")) {Pattern pattern = pile(EMAIL);Matcher matcher = pattern.matcher(value.trim());flag = matcher.matches();}return flag;}/*** 校验密码* @param password* @return 长度符合返回true,否则为false*/public static final boolean isPassword(String password){boolean flag = false;if (null != password && !password.trim().equals("")) {password = password.trim();if(password.length() >= 6 && password.length() <= 30){return true;}}return flag;}/*** 校验⼿机验证码* @param value* @return 符合正则表达式返回true,否则返回false*/public static final boolean isPhoneValidateCode(String value){boolean flag = false;if (null != value && !value.trim().equals("")) {Pattern pattern = pile("^8\\d{5}$");Matcher matcher = pattern.matcher(value.trim());flag = matcher.matches();}return flag;}/*** 判断是否全部⼤写字母* @param str* @return*/public static boolean isUpperCase(String str){if(StringUtils.isEmpty(str)){return false;}String reg = "^[A-Z]$";return isMatch(reg,str);}/*** 判断是否全部⼩写字母* @param str* @return*/public static boolean isLowercase(String str){if(StringUtils.isEmpty(str)){return false;}String reg = "^[a-z]$";return isMatch(reg,str);}/*** 是否ip地址* @param str* @return*/public static boolean isIP(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(IP, str);}/*** 符合返回true,区分30、31天和闰年的2⽉份(最严格的校验),格式为2017-10-19 * @param str* @return*/public static boolean isDate(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(DATE_COMPLEX_LEAP_YEAR, str);}/*** 简单⽇期校验,不那么严格* @param str* @return*/public static boolean isDateSimple(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(DATE, str);}/*** 区分30、31天,但没有区分闰年的2⽉份* @param str* @return*/public static boolean isDateComplex(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(DATE_COMPLEX, str);}/*** 判断是否为数字字符串,如0011,10101,01* @param str* @return*/public static boolean isNumberText(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(NUMBER_TEXT, str);}/*** 判断所有类型的数字,数字(整数、0、浮点数),可以判断是否⾦额,也可以是负数 * @param str* @return*/public static boolean isNumberAll(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(NUMBER_ALL, str);}/*** 是否为正整数数字,包括0(00,01⾮数字)* @param str* @return*/public static boolean isIntegerWithZeroPos(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(INTEGER_WITH_ZERO_POS, str);}/*** 是否为整数,包括正、负整数,包括0(00,01⾮数字)* @param str* @return*/public static boolean isIntegerWithZero(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(NUMBER_WITH_ZERO, str);}/*** 符合返回true,QQ,5-14位* @param str* @return*/public static boolean isQQ(String str){if(StringUtils.isEmpty(str)){return false;}return isMatch(QQ, str);}public static void main(String[] args) {System.out.println(isMoblie("134********"));System.out.println(isMoblie("177********"));System.out.println(isMoblie("176********"));System.out.println(isMoblie("14730800244"));System.out.println(isMoblie("183********"));System.out.println(isMoblie("19330800244"));System.out.println(isMoblie("1333000244"));}}。
如何求出字符串中出现的所有数字之和

如何求出字符串中出现的所有数字之和Q:如何使用公式返回文本字符串中所有数字之和?例如,对于文本字符串“I am 24years old and my Dad is 43”,应用公式后,结果为13,即2+4+4+3。
A:假设文本位于单元格A1中,在单元格B1中输入下面的公式:=SUM((LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9},"")))*{1,2,3,4,5,6,7,8,9}) 解析:加法运算的有效数字是1到9,因此求和的算法是:1 ×字符串中1的个数 +2 × 字符串中2的个数 +9 ×字符串中9的个数= 结果考虑使用SUBSTITUTE函数用空字符串替换所有出现的数字,例如4,SUBSTITUTE(Txt, 4,“”)返回没有4的文本(对于示例,返回“I am 2years old, and my Dad is3”)。
考虑公式中的SUBSTITUTE(A1, {1,2,3,4,5,6,7,8,9}, “”)使用空字符串替换数字1至9,生成9个修改的字符串值数组,剔除了所有出现的相应的数字。
由于在字符串中数字4出现了2次,结果字符串比原字符串的长度少2,因此LEN(A1)-LEN(SUBSTITUTE(A1,4, “”)得到2。
更进一步,公式中的:LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9},""))得到含有9个值的数组,代表每个数字在字符串中出现的次数。
即{0,1,1,2,0,0,0,0,0},表示2和3都只出现了1次,4出现了2次,而其它的数字没有出现。
这样,公式转换为:=SUM({0,1,1,2,0,0,0,0,0}*{1,2,3,4,5,6,7,8,9})两个数组对应元素相乘后求后,即:=0×1+1×2+1×3+2×4+0×5+0×6+0×7+0×8+0×9=13可以使用SUMPRODUCT函数代替原公式中的SUM函数,此时公式为:=SUMPRODUCT((LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9},""))),{1,2,3,4,5,6,7,8,9})。
java 对list中string类型数据 求和的公用方法

java 对list中string类型数据求和的公用方法在Java中,我们经常需要处理各种数据类型,包括整数、浮点数、布尔值等。
对于字符串类型的操作,有时候我们也需要对它们进行一些操作,例如求和。
如果有一个List<String>类型的列表,我们需要对其中所有字符串求和,我们通常会想到使用循环遍历列表,然后逐个字符串进行求和。
但是这样做的话,代码会变得非常冗长和复杂,不利于代码的可维护性和可读性。
因此,我们可以考虑创建一个公共方法,将这种操作封装起来,这样我们就可以在需要的地方重用这个方法了。
一、方法设计首先,我们需要设计一个公共方法,用于对List<String>类型的列表中的所有字符串求和。
这个方法应该接受一个List<String>类型的参数,表示需要求和的字符串列表,以及一个整数类型的参数,表示需要求和的字符串数量。
该方法应该返回一个整数类型的结果,表示所有字符串求和的结果。
在方法实现上,我们可以使用Java8的流API来实现。
具体来说,我们可以使用stream()方法将List<String>类型的列表转换成一个Stream<String>类型的流,然后使用reduce()方法对流中的所有字符串进行求和。
最后,将求和的结果返回即可。
二、方法实现下面是一个具体的实现示例:```javapublicstaticintsumStrings(List<String>strings,intcount){returnstrings.stream().reduce(0,Integer::sum);}```这个方法接受一个List<String>类型的参数strings和一个整数类型的参数count,表示需要求和的字符串列表和需要求和的字符串数量。
在方法实现上,我们使用stream()方法将列表转换成一个Stream<String>类型的流,然后使用reduce()方法对流中的所有字符串进行求和。
java使用正则取出数字的方法

java使用正则取出数字的方法Java使用正则取出数字的方法正文:在Java编程中,我们可以使用正则表达式来提取数字。
正则表达式是一种字符串匹配技术,它可以用于搜索和匹配文本中的特定字符和模式。
在Java中,我们可以使用Java内置的Pattern类来实现正则表达式匹配。
下面是一个使用正则表达式提取数字的Java示例代码:```javaimport java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个数字:");int num = scanner.nextInt();System.out.println(num);}}```在上面的示例代码中,我们首先导入了Java内置的Scanner类,然后使用nextInt()方法从控制台读取一个整数并将其存储在变量num中。
最后,我们使用System.out.println()方法打印出读入的整数。
除了读取数字之外,我们也可以使用正则表达式来提取其他类型的值,例如字符串、字符数组、日期、时间等。
下面是另一个使用正则表达式提取数字的Java示例代码:```javaimport java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个字符串:");String str = scanner.next();System.out.println(str);}}```在上面的示例代码中,我们首先导入了Java内置的Scanner类,然后使用next()方法从控制台读取一个字符串并将其存储在变量str中。
java对某一字段内的数值进行求和计算的方法

java对某一字段内的数值进行求和计算的方法一、引言在Java编程中,对某一字段内的数值进行求和计算是一个常见的需求。
无论是在数据处理、统计分析还是业务逻辑实现中,都可能涉及到对字段内的数值进行求和操作。
针对这个主题,本文将深入探讨在Java中实现对某一字段内的数值进行求和计算的方法,并结合实际案例进行详细介绍。
二、累加求和法对某一字段内的数值进行求和计算,最直接的方法就是通过累加求和的方式实现。
在Java中,可以通过循环遍历数组、集合或数据库查询结果集的方式,逐个累加数值,以得到最终的求和结果。
以下是一个示例代码:```javapublic class SumCalculator {public static int sumOfField(List<Integer> numbers) {int sum = 0;for (int num : numbers) {sum += num;}return sum;}}```在上述示例中,我们定义了一个SumCalculator类,其中包含了sumOfField方法用于对传入的List<Integer>类型的数值进行求和计算。
通过循环遍历列表中的元素,并将其累加到sum变量中,最终实现了对字段内数值的求和操作。
三、递归求和法除了循环累加的方式,我们还可以利用递归的方法来实现对字段内数值的求和计算。
递归是一种通过函数体内调用自身的方式,用于解决问题或实现算法逻辑。
以下是一个示例代码:```javapublic class SumCalculator {public static int sumOfField(List<Integer> numbers, int index) {if (index == numbers.size()) {return 0;}return numbers.get(index) + sumOfField(numbers, index +1);}}```在上述示例中,我们定义了一个sumOfField方法,其中通过递归调用自身的方式,依次将列表中的数值相加,直到遍历完所有元素并得到最终的求和结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java求字符串中数字的和
输入一行字符串(少于80个字符),求其中数字的和。
输入数据包含一行字符串,中间存在多于两个数字。
在一行上输出字符串中数字的和,输出完后,不要回车换行。
输入数据样例:
12a3b@2p
输出数据样例:
1+2+3+2=8
package numbers;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class QSum {
private static List store = new ArrayList<Character>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the String,the length <= 80");
String in = sc.next();
if(in.length()>80){
System.out.println("input error");
return;
}
int sum = 0;
int mak = 0;
int num = 0;
String out="";
for(int i=0;i<in.length();i++){
String get = in.substring(i, i+1);
try{
num=Integer.parseInt(get);
sum+=num;
out+=num+"+";
mak++;
}catch(NumberFormatException e){
continue;
}
}
if(mak>1){
System.out.println(out.substring(0,out.length()-1)+"="+sum); }else{
System.out.println("not enough number"); }。