【发布时间】:2019-08-19 14:58:00
【问题描述】:
我需要创建一个采用 String 参数的递归方法。
我需要验证字符串中的第一个字母是小写字符,然后验证第一个字母之后的所有内容都是数字。
所以应该是这样的a1234。
我尝试过创建基本案例、较小的基本案例和一般案例,但似乎无法找到正确的样式:
public void digitCheck(String s) {
if () //To Check that first character is a letter
else if ()To check that everything after the first letter is a number
else //Invalid
}
如果第一个字符是小写字母,之后的所有字符都是数字,我需要代码来报告它是否是有效字符串。
示例:a123 -> 有效。ab123 -> 无效。
【问题讨论】:
-
欢迎来到 SO!提示:尝试跟踪您在字符串中的哪个索引作为递归函数的参数。顺便说一句,这是一个非常人为的问题:IRL,您永远不会逐个字符地检查这样的字符串,因为它会在大字符串上破坏堆栈,而且速度慢且难以推理。像
^[A-Za-z]\d*$这样的正则表达式对于验证这个属性来说更加简洁。 -
@ggorlen 那么我是否应该添加一个辅助方法,它需要一个额外的参数,例如 (String word, int index),然后在上述方法中调用辅助方法?
-
这听起来是个好计划!如果您不允许使用帮助程序,请考虑在每次调用时获取字符串的子字符串,基本情况是您的字符串长度为 0,您的 alpha 情况为长度 1,并且每个其他较长的字符串必须匹配最后一个字符数字。
-
检查字符串中的位置是否为数字的语法是什么? @ggorlen
-
myString.charAt(index);,尽管这是一个练习 google-fu 的好问题(一项非常宝贵的编码技能)。