【问题标题】:Scan a String for certain content扫描字符串以获取某些内容
【发布时间】: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 循环。在我的情况下,除了数字之外的所有内容。所以我陷入了这种情况,我不知道如何实现这一点。我应该对每封禁信进行比较吗?或者我应该只在参数只包含数字而没有其他内容时执行我的函数?
  • 您应该在代码中记录它应该完成的工作。您应该假设大部分时间都花在了有效的输入上:尝试继续进行有用的处理,当您做不到时,就为什么给出有意义的指示。

标签: java string character


【解决方案1】:

像此链接中建议的那样尝试并捕获会完美地工作

A simple try and catch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多