https://leetcode.com/problems/string-to-integer-atoi
class Solution {
public static int myAtoi(String s) {
int sign = 1, i = 0, r = 0;
s = s.trim();
if (s.isEmpty()) {
return 0;
}
else if (s.charAt(i) == '-') {
i++; sign = -1;
}
else if (s.charAt(i) == '+') {
i++;
}
while (i < s.length() && Character.isDigit(s.charAt(i))) {
int d = s.charAt(i) - '0';
if (r > (Integer.MAX_VALUE - d) / 10){
return sign > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
}
r = r * 10 + d;
i++;
}
return r * sign;
}
}
s를 trim
하여 공백 제거 후 부호를 판단, 나머지 문자열을 돌면서 숫자면 각 자리로 정수를 만든다. 만들다가 int 범위를 초과하면 부호로 Integer의 최대, 최소값을 출력하고 아니면 최종적으로 부호와 만들어진 정수를 곱해서 출력한다.