Pulling Digits Out of String to Sum Them

Pulling Digits Out of String to Sum Them

How do I pull out every second digit from a string and sum them?

This is a rather unusual question, but it’s not that hard to accomplish.

What must iterate through each character of the string and”grab” the digits whose position is a multiple of two (2). There are acouple of ways to do this, but I took what I felt was the easierroute. Since this is more or less a binary problem, setting a Boolean valuewith each iteration works nicely. Here’s the logic:

  1. For all “odd” positions, set Boolean value to False;
  2. For all “even” positions, set Boolean value to True;
  3. If the Boolean value is true, grab that character and add it to a temporary buffer.
  4. Iterate through the buffer, and convert each character to an Integer while adding the converted value to an integer variable.

Here’s the code that accomplishes the above:

function AddEvenOrOddChars(S : String; OddOrEven : Boolean) : Integer;var  I   : Integer;  evn : Boolean;  buf : String;begin  Result := 0;  {If OddOrEven was passed as True, then the all odd positions   will be grabbed and summed. If False, then all even positions   will be grabbed and summed.}  evn := EvenOdd;  {First grab the even position characters}  for I := 1 to Length(S) do begin    if evn then      buf := buf + S[I];    {Set boolean to its opposite regardless of its current value.     If it’s currently true, then we’ve just grabbed a character.     Setting it to False will make the program skip the next one.}    evn := NOT evn;  end;  {Now, iterate through the buffer variable to add up the individual   values}  for I := 1 to Length(buf) do    Result := Result + StrToInt(buf[I]);end;

See also  Comparing different methods of testing your Infrastructure-as-Code

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist