字符串中数字子串的求和
来源:互联网 发布:免费x站最新 域名 编辑:程序博客网 时间:2024/05/15 13:41
字符串中数字子串的求和
【题目】
给定一个字符串str,求其中全部数字串所代表的数字之和。
【要求】
1、忽略小数点字符,例如"A1.3",其中包含两个数字1和3。
2、如果紧贴数字子串的左侧出现字符'-',当连续出现的数量为奇数时,则数字为负数,连续出现的数量为偶数时,则数字为正数。例如,"A-1BC--12",其中包含数字是-1和12。
【举例】
str="",返回36;
str="a-1b--2c--d6e",返回7;
【解答】
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner s = new Scanner(System.in);String str = s.next();System.out.println(numSum(str));}public static int numSum(String str) {char[] s = str.toCharArray();int sum = 0;// 所有数字之和int num = 0;// 保存当前连续的数字boolean flag = true;// 判断是否为负数,true为正数for (int i = 0; i < s.length; i++) {int cur = s[i] - '0';// 当前的字符if (cur >= 0 && cur <= 9) {// 不管cur之前字符是否为数字,累加numnum = num * 10 + (flag ? cur : -cur);} else {sum += num;// 遇到不是数字的字符,先把之前的数字num累加到sumnum = 0;// 遇到不是数字的字符,将num赋值为0if (s[i] == '-') {// 判断当前字符是否是'-'if (s[i - 1] == '-') {// 如果当前的'-'的上一个字符也是'-',则将flag取反。flag = !flag;} else {flag = false;// 如果当前的'-'上一个字符不是'-',需要将flag重新赋值为false}} else {flag = true;// 如果当前字符不是'-',需要将flag重新赋值为true,只有连续的'-'才会累加取反。}}}sum += num;return sum;}}
0 0
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串中数字子串的求和
- 字符串问题---字符串中数字子串的求和
- 求字符串中数字子串求和
- 5.2 字符串中数字子串的求和
- 改进版---字符串中数字子串的求和
- [编程之美-08]字符串中数字子串的求和
- 字符串之数字子串求和
- 对字符串中的数字子串求和
- C++字符串数字子串求和
- 字符串中最长的数字子串
- 查找字符串中最长的连续数字子串
- 软件测试
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第二十一节:拾取地表与物体
- 关于MYSQL group by 分组按时间取最大值的实现方法!
- setWillNotDraw和setFillViewport
- 你为什么不分享
- 字符串中数字子串的求和
- QT窗口最小化后,不显示任务栏图标
- package 包 , jar 包
- android 源代码查看工具:android studio
- Content Addressed Storage (CAS)
- 让动画不再僵硬:Facebook Rebound Android动画库介绍
- NYOJ——62 笨小熊
- Python 初识Pandas- Python Data Analysis Library
- 快速集成微信支付和支付宝支付