【问题标题】:Determines if the input string is indeed a valid four character double literal确定输入字符串是否确实是有效的四字符双精度字面量
【发布时间】:2019-07-18 12:02:26
【问题描述】:

我确实有一个问题。我必须确定输入字符串是否确实是有效的四字符双文字

  1. 完全由以下字符组成:“+”、“-”、“.”(小数点)和“0”到“9”
  2. “+”或“-”字符只能作为第一个字符出现
  3. “.”(小数点)字符必须只出现一次
  4. 所有其他字符必须是“0”到“9”字符

我的大问题是将 +- 放在第一个字符和 .一次

【问题讨论】:

    标签: java if-statement char


    【解决方案1】:

    试试这个 -

    static boolean isValid(String s) {
            // 1
            if (s.length() != 4) return false;
    
            String digits = "0123456789";
            // 2
            if (s.charAt(0) != '+' && s.charAt(0) != '-' && digits.indexOf(s.charAt(0)) == -1) return false;
    
    
            byte decimalCount = 0;
    
            for (int i = 1; i < 4; i++) {
                if (s.charAt(i) == '.') decimalCount++;
                    // 4
                else if (digits.indexOf(s.charAt(i)) == -1) return false;
            }
    
            //3
            return decimalCount == 1;
        }
    

    【讨论】:

    • 它与“-5.0”一起工作正常,因为它满足所有 4 个标准,而“5.00”不符合第二个标准。
    • 第二个说“可能出现”而不是“需要出现”。一切都好——只是想帮忙;)
    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2013-09-23
    • 2022-01-11
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多