gpt4 book ai didi

java - 检查字符串是否仅包含数字,然后仅当它不包含数字以外的字符时才设置它

转载 作者:行者123 更新时间:2023-11-30 02:35:07 25 4
gpt4 key购买 nike

/**
* 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;
}

所以我基本上需要确保字符串只包含数字,如果它包含非数字,则该方法什么都不做。我遇到的问题是,如果一串数字中有一个随机字符,即“034343a45645”,它仍然会设置该方法。感谢任何帮助,谢谢!

最佳答案

您可以使用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 循环,onlyDigits 仍为 true。因此,假设如果 mobile 是空字符串,则 onlyDigits 应该为 false,那么您可以这样初始化它:

boolean onlyDigits = !mobile.isEmpty()

检查后,如果onlyDigitstrue,则可以分配它。

if (onlyDigits)
this.mobile = mobile;

关于java - 检查字符串是否仅包含数字,然后仅当它不包含数字以外的字符时才设置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43302458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com