import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
List<Integer> nums = new ArrayList<Integer>();
String src = "";
Scanner scan = new Scanner(System.in);
Long sum = 0L;
System.out.println("please enter a Expression :");
src = scan.nextLine();
StringBuffer sb = new StringBuffer();
for(int i = 0;i < src.length();i ++){
// 判断字符是否数字
if(Character.isDigit(src.charAt(i))){
sb.append(src.charAt(i));
}else{
if(sb.length() > 0){
nums.add(Integer.parseInt(sb.toString()));
sb = new StringBuffer();
}
}
}
StringBuffer expression = new StringBuffer();
for(Integer num : nums){
expression.append(String.valueOf(num)).append("+");
sum += num;
}
String str = expression.substring(0,expression.length() - 1);
System.out.println(str + "=" + sum);}}
帮你把一楼的改好了。追问按照你的代码输出结果是:12+3+2=17,可题目要求是:1+2+3+2=8,要怎么改?
追答import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String info = sc.nextLine();
StringBuffer sb = new StringBuffer();
int sum = 0;
for(int i=0;i<info.length();i++){
if(Character.isDigit(info.charAt(i))){
sb.append(String.valueOf(info.charAt(i))).append("+");
sum+=Integer.parseInt(String.valueOf(info.charAt(i)));
}
}
String str = sb.toString();
System.out.println(str.substring(0, str.length()-1)+"="+sum);
}
}
重新帮你写了,比他的简洁,最烦看别人代码。