求字符串里面数字之和

来源:互联网 发布:编程导论 pdf 编辑:程序博客网 时间:2024/06/07 09:43

无意看到别人面试问了很简单的问题,求字符串里面数字之和,所以自己来实现下。

例子:

比如字符串:aaaa13sseui9ddu78ff4sss

里面的字符串数字是13、9、78、4 得到的和为104

代码如下:

package com.sangfor.tree;public class SumByString {public static int sumByString1(String s) {int result = 0;String newString = "";int count = 0;if (s == "" || s == null) {return 0;}char[] chars = s.toCharArray();for (char c : chars) {if ('0' <= c && c <='9') {newString += c;count = 0; } else {if (count == 0) {newString += 'b';count++;}}}String[] charsNum = newString.split("b");for (String str:charsNum) {if (str.length() > 0) {result += Integer.parseInt(str);}}return result;}public static int sumByString2(String s) {int result = 0;if (s == "" || s == null) {return 0;}String[]  ss = s.split("\\D+");for (String  str: ss) {if (str.length() > 0) {result += Integer.parseInt(str);}}return result;}public static void main(String[] args) {String s = "aaaa13sseui9ddu78ff4sss";System.out.println(s.toString());int result = sumByString2(s);System.out.println("result" + result);result = sumByString1(s);System.out.println("result" + result);}}


结果:

aaaa13sseui9ddu78ff4sssresult104result104

总结:

\\D+  \转义字符 \D中文 +1个以上的意思


0 0
原创粉丝点击