As my first post, to test the layout and some plugins, I have decided to share a little Java class that converts a String input to an int. While it is not perfect, it seems to work well enough under the constraint of not using library functions to do the conversion.
When I wrote it I decided to just throw decimal point entry to the wayside. However, looking back at it I could have allowed it and either floored the value or only permitted whole number values.
Overall I think this implementation handles the problem statement without over-complicating matters.
public class StringToInt {
public static int strToInt(String input) {
int number = 0;
int negFlag = 1;
int count = 0;
for (char s : input.toCharArray()) {
if (s == '-') {
if (count > 0) {
throw new NumberFormatException();
}
negFlag = -1;
continue;
}
if (s < '0' || s > '9') {
throw new NumberFormatException();
}
number *= 10;
number += (s - '0');
}
return number * negFlag;
}
}
count is never used, btw. so 12-12 will pass as 1212