for (int i = (n < 0) ? 1 : 0; i < str.length(); i++)

でいいんじゃね?