java检查输入字符串到int
我有这个方法:
public static int parseInt(String str) {
if (isValidNumber(str)) {
int sum = 0;
int position = 1;
for (int i = str.length() - 1; i >= 0; i--) {
int number = str.charAt(i) - '0';
sum += number * position;
position = position * 10;
}
return sum;
}
return -1;
}
它将字符串转换为整数。正如你所看到的(目前)在一个if语句中,它使用一种方法来检查输入是否为有效输入:
public static boolean isValidNumber(String str) {
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c >= '0' && c <= '9'){
return true;
}
}
return false;
}
我希望字符串仅为数字(负数和正数),不允许使用其他字符串。此时,字符串1a1a
将被转换为不应转换的整数,而-1
将不会被转换。我想你们明白我的意思。我不知道该怎么做
请帮忙
# 1 楼答案
要检查字符串是否为实数,可以使用以下方法:
# 2 楼答案
问题在于函数
isValidNumber
。第一次出现非数值时,它应返回false,如下所示:# 3 楼答案
试试这个:
代码:
输出: