65. Valid Number 发表于 2022-05-22 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455class Solution { public boolean isNumber(String s) { boolean hasDot = false, hasNumber = false; // 注意符号位仅能出现在开头 for (int i = getNumStartIndex(s, 0); i < s.length(); i++) { char c = s.charAt(i); if (c == 'e' || c == 'E') { if (!hasNumber) { return false; } return isInt(s, i + 1); } else if (c >= '0' && c <= '9') { hasNumber = true; } else if (c == '.') { if (!hasDot) { hasDot = true; } else { return false; } } else { return false; } } return hasNumber; } private int getNumStartIndex(String s, int i) { if (i == s.length()) { return i; } char c = s.charAt(i); return c == '+' || c == '-' ? i + 1 : i; } private boolean isInt(String s, int i) { i = getNumStartIndex(s, i); if (i == s.length()) { return false; } while (i < s.length()) { char c = s.charAt(i); if (c < '0' || c > '9') { return false; } i++; } return true; }} Reference65. Valid Number