11

How can we convert a list to an integer correctly?

{5, 22, 4, 5} -> 52245?

When I use the command FromDigits in Mathematica

FromDigits[{5, 22, 4, 5}]

The result is incorrect, namely 7245

Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371
ABCDEMMM
  • 1,816
  • 1
  • 9
  • 17

5 Answers5

11

Here are three ways to do it. The first is the best I think:

FromDigits@Flatten[IntegerDigits /@ {5, 22, 4, 5}]

ToExpression@StringJoin[ToString /@ {5, 22, 4, 5}]

ToExpression@StringJoin@StringCases[Characters@ToString@{5, 22, 4, 5}, DigitCharacter]
flinty
  • 25,147
  • 2
  • 20
  • 86
10
FromDigits @ ToString @ Row @ {5, 22, 4, 5}

Head[%]
52245

Integer

Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371
5
ToExpression@StringJoin@IntegerString[{5, 22, 4, 5}]

52245

ToExpression@StringJoin@IntegerString[{5, 22, 4, 5},#]&/@{2,10,16}

{10110110100101, 52245, 51645}

user1066
  • 17,923
  • 3
  • 31
  • 49
4
{5, 22, 4, 5} ~ StringRiffle ~ "" // FromDigits
52245
kglr
  • 394,356
  • 18
  • 477
  • 896
1
list = {5, 22, 4, 5};
FromDigits[StringJoin[IntegerString[list]]]

which gives

52245