java - 求一串由运算符分隔的数字的总和

标签 java

给定字符串=“128+16+8+2+1” 答案应打印出 155

代码应该将字符串中的所有数字相加,并且答案应该作为字符串打印出来。 我尝试为此编写代码,但是最后 2 个数字不会相加,我当前的答案是打印出 153。寻求帮助以引导我找到正确的解决方案。

import java.util.stream.*;
public class add {
    static void evalA(String s) {
        int n = countChar(s,'+');
        System.out.println(s);
        int cnt = 0;
        int[] data = new int[n];
        for(int i=0;i<s.length();i++) {
            if (s.charAt(i)=='+') {
                System.out.println(s.substring(0,i));
                data [cnt] = Integer.parseInt(s.substring(0,i));
                cnt++;
                s = s.substring(i+1,s.length()-1);
               i=0;
            }

        }
        String sum = ""+IntStream.of(data).sum();
        System.out.println(sum); 
    }  
}

最佳答案

你可以这样做:

public static void main(String[] args) 
{
    evaluate("128+16+8+2+1");
}

public static void evaluate(String equation)
{
    String[] numbers = equation.split("\\+");

    int sum = 0;

    for (String number : numbers)
    {
        //could wrap this in a check incase of exception or errors
        sum += Integer.parseInt(number);
    }

    System.out.println(sum);
}

它只是用 + 分割字符串,以数组形式获取各个数字,然后循环遍历该数组并将每个数字值添加到 sum 变量中。

关于java - 求一串由运算符分隔的数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48697713/

相关文章:

java - 是否可以更改我的包中的 log4j 级别,但不能使用例如 spring 更改 api 的 IM 中的级别

java - 使用 java 从 Google Drive 下载 Google Docs 文件

java - 打印出由星号组成的字母 E - 我的程序可以运行,但我不明白为什么

java - 使用 Java 合并 Android 设备上的多个 SQL 文件

java - 无法使用 lucene IndexWriter.deleteDocuments(term) 删除文档

java - 帮助编写快速排序

java - 缓存线程池无限增长

java - 在 Vaadin 14 中导出 Excel 中的网格

java - 添加maven本地依赖而无需maven install :install-file

java - JTable:双击应保留先前的选择