【发布时间】:2016-12-10 01:05:44
【问题描述】:
我想扫描一个字符串及其内容。如果字符串中有任何字符,我想返回一条错误消息。例如: int a = myFunction("123");将在 a 中保存“123”,但是当用户尝试执行类似 int a = myFunction("12s32"); 之类的操作时它应该返回错误,因为字符串中有一个字符。这是我到目前为止得到的:
public class Parseint {
public static int parseInt(String str) {
if (str == null || str.isEmpty()) {
System.out.println("Der String enthaelt keine Zeichen");
return -1;
} else {
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;
}
}
public static void main(String[] args) {
int a = parseInt("");
System.out.println(a);
}
}
【问题讨论】:
-
所以你想排除字母 - 你可能想排除非数字。 (您可能想要使用标签或以其他方式提及特定的编程语言。)您知道如何使用条件语句:
if (<invalid>) { <complain> return <exceptional value>;(此后无需使用else(提前退出):减少嵌套深度/缩进)。您知道如何表示char文字并使用它执行算术运算:str.charAt(i) - '0'。你也可以做比较。 -
感谢您的回复!我的想法是创建一个搜索“无效”输入的 for 循环。在我的情况下,除了数字之外的所有内容。所以我陷入了这种情况,我不知道如何实现这一点。我应该对每封禁信进行比较吗?或者我应该只在参数只包含数字而没有其他内容时执行我的函数?
-
您应该在代码中记录它应该完成的工作。您应该假设大部分时间都花在了有效的输入上:尝试继续进行有用的处理,当您做不到时,就为什么给出有意义的指示。