题目:将"wdnwjfwj we hd 9#sdfekfmew 2011"里的数字取出来相加结果为2020
Python实现:
#解题思路:利用字符串分隔,把字符串转成列表,利用列表推导式,把列表中的元素2011取出来,然后针对num_list列表进行添加9这个数字,添加后,直接对列表进行求和
a = 'wdnwjfwj we hd 9#sdfekfmew 2011' new_a = a.split(' ') num_list = [int(num) for num in new_a if num.isdigit()] num_list.append(int(new_a[3][0])) print(sum(num_list))
#正则表达式的写法:
import re#导入re模块,可以使用正则表达式
r="wdnwjfwj we hd 9#sdfekfmew 2011"
lis = re.findall(r'd+', r)#筛选过滤出数字['9', '2011']
print(lis)
new_lis = [int(res) for res in lis]
print(sum(new_lis))
Java实现:
package training;
//将"wdnwjfwj we hd 9#sdfekfmew 2011"里的数字取出来相加结果为2020
import java.util.Arrays;
public class GuoLve {
public static void main(String[] args) {
String s = "wdnwjfwj we hd 9#sdfekfmew 2011";
System.out.println(sum(s));
}
public static int sum(String value) {
String strings[] = value.split("\D+");
System.out.println(Arrays.toString(value.split("\D+")));
int sum = 0;
for (String s : strings) {
if (!s.equals("")) {//取出列表里面的不是空的,然后把这些不是空的,通过下面一步筛选出来求和
sum += Integer.parseInt(s);//Integer.parseInt(s)把列表里面的数字拿出来
}
}
return sum;
}
}