Dart split integer and add their values

Viewed 1084

Suppose I have a variable int a = 12345, I want to split a to [1,2,3,4,5] and add them like [1+2+3+4+5] and in final I want to get a result of a = 15 how can I achieve this?

4 Answers

There are different ways to achieve the same, one of the ways is as:

void main() {
  int num = 12345;
  int sum = 0;
  
  String numAsString = num.toString();

  for (int i = 0; i < numAsString.length; i++) {
    sum += int.parse(numAsString[i]);
  }
  
  print(sum); // 15
}

All u have to do is recursively add every digit individually.

void main() {
  
  int a = 12345; 
  int sum = 0; 
  while(a>0){
      sum  = sum + (a%10); 
      a = (a/10).floor(); 
  }  
  print(sum);
  //if u want to store in a 
  a = sum;
}

You can achieve using the split() as

void main(){
  var i=34567;
  var iStr=i.toString().split('');
  var exp= iStr.join('+');
  var sum=iStr.fold(0,(a,b)=>int.parse(a.toString())+int.parse(b));
  print(exp);
  print(sum);  
}

Output: 3+4+5+6+7 25 If you need only the sum of the integer then

void main() {
  var i = 34567;
  var iStr = i.toString().split('');
  var sum = iStr.fold(0, (a, b) => int.parse(a.toString()) + int.parse(b));
  print(sum);
}

I would approach it by first converting the integer to a String. Then mapping each single character into an int and finally simply reduce the iterator of ints into the sum.

int num = 12345;
  print(num
    .toString()
    .split('')
    .map(
      (c) =>int.parse(c)
    ).reduce((a,b) => a+b));
Related