确定输入字符串是否确实是有效的四个字符的双文字

时间:2019-02-25 05:47:34

标签: java if-statement char

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

  
      
  1. 完全由以下字符组成:“ +”,“-”,“。”(小数点)和“ 0”至“ 9”
  2.   
  3. “ +”或“-”字符只能显示为第一个字符
  4.   
  5. “。”(小数点)字符必须只出现一次
  6.   
  7. 所有其他字符必须为“ 0”至“ 9”字符
  8.   

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

1 个答案:

答案 0 :(得分:0)

尝试一下-

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;
    }