[英]How do I split a string and look for digits?
String[] tokens = s.split(' ');
for(int i = 0; i < (tokens.length) - 1; ++i)
{
if(isDigit(tokens[i]))
{
// Two numbers cannot be together without an operator.
if(isDigit(tokens[i + 1]))
{
check = 1;
break;
}
if((tokens[i + 1] == '(') )
{
check = 1;
break;
}
}
}
s是我要分割的字符串。 拆分后,我想检查每个拆分部分是否为数字。 我无法使用isDigit,因为它只能用于字符,并且此处的拆分部分是String。
注意:我正在为计算器编写程序。 如果我使用toCharArray(),则将拆分多个位数。 例如。 23将分别变为2和3。
int isDigit = false;
try
{
Integer.parseInt(tokens[i])
isDigit = true;
}
catch(NumberFormatException e)
{
}
如果您的电话号码应为Integer(与其他类型相同Integer.parseInt(...)
则可以使用Integer.parseInt(...)
)。 我认为无效数字会引发NumberFormatException。
try{
if(isDigit(Integer.parseInt(tokens[i]))
{
//Will come here if it is an integer
}
} catch(NumberFormatException nfe) {
//Will come here if it is not an integer
}
您是否想知道每个令牌是否都是数字?
try{
Integer.parseInt(token)
return true;
} catch (numberFormatException){
return false;
}
或使用apache commons lang http://commons.apache.org/lang/api-release/index.html
StringUtils.isNumeric()
您可能要使用string.toCharArray()
方法而不是string.split()
,它会生成一个字符数组,然后可以使用Character.isDigit(char)
方法进行检查。 希望这可以帮助。
一种方法:使用Integer.parse(token)并捕获NumberFormatException而不是数字:
或使用token.toCharArray()并分别测试字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.