wuruize888 2017-05-07 15:43 采纳率: 66.7%
浏览 957
已采纳

java 字符串判断的问题,谢谢

          String sf = "12000";
          if(sf.indexOf(String.valueOf("\\.")) == -1){
            out.println("float");
          }else{
            out.println("int"); 
          }


                        想做个判断字符串是否为float,可总不对。
  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-05-07 22:03
    关注

    这个问题看似简单,其实还是比较复杂的。
    首先你需要明确认定什么样的数是float。
    有小数点就是float? 那 hello.123呢,123...68,.567呢?

    如果要考虑这些特殊情况,基本的逻辑是这样的:

    首先:

     NumberUtils.isNumber(aString); //用此函数判断字符串是否为数字组成。
    

    然后:

       查找小数点的个数和位置
       当小数点个数为1且不在字符串首部时,可以认为是float数。
    

    当然,在你的题目中可能不需要考虑这些情况,那用你的代码是可以的,只是需要修改一下:
    更正后的代码如下:

     public static void main(String[] args) {
            String sf = "12000";
            if(sf.indexOf('.') == -1){  //查不到字符'.',返回-1。另外注意是单引号。
                System.out.println("int"); 
            }
                else{
                System.out.println("float");
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况