/**
* Set the person's mobile phone number
*/
public void setMobile(String mobile) {
for (int i = 0; i < mobile.length(); i++) {
if (!Character.isDigit(mobile.charAt(i))) {}
}
this.mobile = mobile;
}
所以我基本上需要确保字符串只包含数字,如果它包含非数字的方法,就什么也不做。我的问题是,如果一个数字串中有一个随机字符,即“0343A45645”,它仍然会设置方法。感谢您的帮助,谢谢!
添加一个布尔字母
然后在你的for循环中
无论何时找到一封信,请使用
else
语句将letterFound
设置为true
然后立即停止循环
i=mobile。length()
在您的else
语句中
你有两个问题:
第一:如果if条件为false,则没有退出循环
第二:为什么要使用循环来实现这样的tryParse
boolean tryParseInt(String value) {
try {
Integer.parseInt(value);
return true;
} catch (NumberFormatException e) {
return false;
}
}
if(tryParseInt(mobile)){
this.mobile = mobile;
}
您可以使用String.matches(String regex):
boolean onlyDigits = mobile.matches("[0-9]+");
有了for循环,当找到一个非数字时,你可以直接中断。
boolean onlyDigits = true;
for (int i = 0; i < mobile.length(); i++) {
if (!Character.isDigit(mobile.charAt(i))) {
onlyDigits = false;
break;
}
}
你也可以直接返回,而不是打破循环。听上去你不想再发生什么事了。这样就不需要从onlyDigits
变量开始。
请注意,如果mobile。length()==0
那么就上述for循环而言,数字仍然是true
。因此,假设onlyDigits
应为false
如果mobile
为空字符串,则可以将其初始化为:
boolean onlyDigits = !mobile.isEmpty()
检查后,您可以分配它,如果onlyDigits
是true
。
if (onlyDigits)
this.mobile = mobile;
问题内容: 我想检查a是否仅包含数字。我用这个: 但意识到它也允许和。基本上,我要确保只能包含数字,而不能包含其他字符。由于和都是数字,所以不是正确的方法。也许我需要一个正则表达式?有小费吗? 问题答案: 怎么样
我有这三个字符串: 我如何检查这些字符串中哪一个只包含字母还是只包含数字(用R表示)? 只能在字母检查中为TRUE 它对很有效,但对也很有效,这是我不想要的。 提前谢了。
我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!
问题内容: 我发现的大多数问题都偏向于他们正在寻找数字中的字母这一事实,而我正在寻找我想成为无数字符串的数字。我需要输入一个字符串,并检查它是否包含任何数字以及是否确实拒绝它。 仅当所有字符均为数字时,该函数才返回。我只想看看用户是否输入了一个数字,例如“我拥有一只狗”之类的句子。 有任何想法吗? 问题答案: 你可以像这样使用函数和函数 另外,你可以使用正则表达式,如下所示
问题内容: 我正在编写一个程序,其中用户以以下格式输入字符串: 我需要检查字符串中是否有数字 然后只提取数字。 如果我使用或,则无论输入的内容是什么,程序都无法在字符串中找到数字,但是仅在只有数字的情况下才能使用。 我可以使用什么作为查找和提取的解决方案? 问题答案: 我使用的解决方案如下所示: 我确信这不是一个完美的解决方案,但它满足了我的需求。谢谢大家的帮助。:)
使用。但仍不确定为什么上面的方法不起作用。 不管怎样,多亏了之前有人建议这个答案。:)