杭电 2015年考研 计算机学院 复试笔试第一题 JAVA解法
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; /* 杭电2015年 计算机学院 复试 笔试题第一题 JAVA解答 * author 刘汪洋 QQ 605283073 * 求出:字符串如:“34223abd#34SB-11--” * 中整数的和 其中-在数字前表示负号,否则为字符 */ public class Test5 { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = "";//获取输入的字符串 int sum;//总和 int num;//数字 try //加入异常处理 { while(in.hasNext()) { sum = 0;//每获取一次输入 将总和以及数字清零 num=0; input=in.nextLine();//读取用户输入的字符串 String reg = "[\\-|\\+]?\\d+";//正则表达式 前面可以带课不带+或- 后面是 一到多个数字 Pattern p = Pattern.compile(reg); Matcher m = p.matcher(input); while(m.find())//如果陪陪 { // System.out.println(input.substring(m.start(),m.end())); num = Integer.parseInt(input.substring(m.start(),m.end())); sum+=num;//将截取的sum相加 } System.out.println("所输入字符串中数字的总和为:"+sum); } }catch(Exception e) { e.printStackTrace(); }finally//最终关闭 流 { in.close(); } } }
效果:
时间: 2024-10-29 19:06:35