65. Valid Number
一、题目
1、审题
2、分析
判断所给字符串是否可以转化为小数类型。
二、解答
1、思路:
多层判断,转化为小数类型,可以很巧妙的采用多个 flag 进行记录是否符合浮点数定义:
①、"+" 或 “-” 符号只能出现在开头或则 e 的后一个字符
②、e 前边得有数字、后边得有整形数字
③、只能出现一次小数点 "."
public boolean isNumber(String s) { s = s.trim(); boolean pointSeen = false; // 出现了小数点 boolean eSeen = false; // 出现了 e boolean numberSeen = false; // 出现了数字 boolean numberAfterE = true; // 数字出现在 e 后边 for(int i = 0; i < s.length(); i++) { if('0' <= s.charAt(i) && s.charAt(i) <= '9') { numberSeen = true; numberAfterE = true; } else if(s.charAt(i)== '.' ) { if(eSeen || pointSeen) return false; pointSeen = true; } else if(s.charAt(i) == 'e') { // e 前边得有数字 if(eSeen || !numberSeen) return false; numberAfterE = false; eSeen = true; } else if(s.charAt(i) == '-' || s.charAt(i) == '+') { if(i != 0 && s.charAt(i-1) != 'e') return false; } else { return false; } } return numberSeen && numberAfterE; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步