关于java:20-表示数值的字符串try-catch多条件字符串字符串方法

5次阅读

共计 1365 个字符,预计需要花费 4 分钟才能阅读完成。

20. 示意数值的字符串

思路一:try catch

应用库函数,String 转 Double,不能转就返回 false

  • String 转 Double 的办法:

     Double.parseDouble(s);
  • try catch 的格局

      try{}catch(Exception e){}
  • 前面有 f,d 示意 float,double 的,在本题中应返回 false

操作:

思路二:

  • 次要思路:将字符串按 E 分为前后两段,前段判断是否为 ,后段判断是否为 整数
  • 判断该段字符串是否为 :将该段字符串按 小数点 分为 前后两段 ,判断前后两段是否为 整数
  • 判断该字符串是否为 整数:遍历该字符串,是否有大于 ’0′, 小于‘9’, 的字符。

操作细节:

  • 删空格

    String trim()

    返回一个字符串,它的值是字符串,任何前导和尾随空格删除。

  • 分段

    String substring()

    具体看 17. 打印从 1 到最大的 n 位数

  • 字符串的首位、末位

    char endwith()
  • 是否含有某字符

    boolean contains()
  • 某字符的地位

    int indexOf()
  • 字符串在某地位的字符值

    char charAt()

    操作

    public boolean isNumber(String s) {s = s.trim();
          if (s.length()==0) return false;//
          if (s.startsWith("+") || s.startsWith("-")) s = s.substring(1);
          s = s.replace("E", "e");
          if (s.contains("e")) {String firstString = s.substring(0, s.indexOf("e"));
              String secondString = s.substring(s.indexOf("e") + 1);
              if (secondString.startsWith("+") || secondString.startsWith("-")) secondString = secondString.substring(1);
              return trueNumber(firstString) & intNumber(secondString);
          }
          return trueNumber(s);
      }
    
      public boolean trueNumber(String s) {if (s.contains(".")) {String firstString = s.substring(0, s.indexOf("."));
              String secondString = s.substring(s.indexOf(".") + 1);
              if (firstString.length() == 0) return intNumber(secondString);
              if (secondString.length() == 0) return intNumber(firstString);
              return intNumber(firstString) & intNumber(secondString);
          }
      }
    
      public boolean intNumber(String s) {if (s.length() == 0) return false;//
          char[] cs = s.toCharArray();
          for (char c : cs) {if (c < '0' || c > '9') return false;
          }
          return true;
      }
正文完
 0