I don't believe so. Just make the function yourself, separate it into substring based on the index of the arithmetic operators then, place all the substrings (arithmetic operators as a char) into an array, then go through that array and cast the string numbers into integers and based on what operator was between then apply that to the integer numbers, and store those calculations in a variable that will be returned. So the array should look like:
["10","+","2","*","6"]
Assuming the user order is correct. You would check if the string is a number to cast it into an integer, then go through and calculate making sure do it in the order of Order of Operations. In this case it would find "+" and "*", from the indexOf("*")=timesIndex do { array[timesIndex-1]*array[timesIndex+1] }. And While there are still are arithmetic operators, repeat that recursively. So for that the process should look like:
["10","+","2","*","6"]
[10,"+",2,"*",6] ( "+", "*" )
[10,"+",12] ("+")
[22] (No operators found, problem is done.)
You also have to account for items in between "(" and ")" are exceptions, find those first and do the operations on those as substrings then the main problem after. If you use recursion right this can turn into a beautifully short amount of code.