zoukankan      html  css  js  c++  java
  • java字符串是否是全为数字的判断

    程序的本体是,输入成绩,根据成绩评定等级。

    但是如果用Scanner的nextInt,在控制台输入字符时,程序会崩溃,于是想办法判断输入的是否是数字,然后再进行评定。

    程序如下:

    package com.test.demo;
    import java.util.Scanner;
    public class TestOne {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            Scanner s = new Scanner(System.in);
            String str = null;//把str定义为全局变量,这样while循环结束后也可以使用
            System.out.println("成绩评定:");
            
            //第一次死循环用于保证成绩评级一直运行
            while(true){
                boolean cflag = true;//用于是否瑞出第二次死循环
                while(cflag){//利用死循环判断输入的字符是否正确
                    int count = 0;//如果count=str.length,表名每个字符都是数字,于是可以退出
                    System.out.println("请输入成绩:");
                    str = s.nextLine();//从控制台获取字符串
                    
                    char[] chs = str.toCharArray();//将字符串转为字符数组
                    for(int i = 0;i<chs.length;i++){//笨方法
                        //聪明方法是:if(str.matches(reqex:"[0-9]*"))
                        if(!(chs[i]>='0'&&chs[i]<='9')){
                            System.out.println("输入的格式有误,请重新输入:");
                            break;
                        }
                        count++;
                    }
                    if(count==str.length()){//全是数字了
                        cflag = false;
                    }
                }
    
                Integer grade = Integer.parseInt(str);//把字符串转换为整型
                System.out.println(grade);
                
                if(grade>95&&grade<=100) System.out.println("太棒了,您的成绩为:优秀");
                else if(grade>70&&grade<=95) System.out.println("太棒了,您的成绩为:中等");
                else if(grade>60&&grade<=70) System.out.println("太棒了,您的成绩为:合格");
                else if(grade<=60&&grade>40) System.out.println("您的成绩不及格!");
                else if(grade<=40&&grade>=0) System.out.println("抱歉你还是重新学习吧!");
                else{
                    System.out.println("输入的成绩不和法,请重新输入:");
                    continue;
                }
                
                System.out.println("您是否想要退出?Y/N");
                Scanner ys = new Scanner(System.in);
                String ex = ys.nextLine().toUpperCase();//把字符串转为大写
                if(ex.equals("Y")){
                    System.out.println("好的,退出成功!");
                    break;
                }
                else{
                    continue;
                }
            }
        }
    }
  • 相关阅读:
    你试过不用if撸代码吗?
    Chrome开发者工具Debug入门
    我为什么推荐Prettier来统一代码风格
    使用JSDoc自动生成代码文档
    Async/Await是这样简化JavaScript代码的
    C#泛型约束 (转载)
    DateTime , DateTime2 ,DateTimeOffset 之间的小区别 (转载)
    允许跨域资源共享(CORS)携带 Cookie (转载)
    C#中如何利用操作符重载和转换操作符 (转载)
    EF Core 2.1 Raw SQL Queries (转自MSDN)
  • 原文地址:https://www.cnblogs.com/bkytep/p/9483277.html
Copyright © 2011-2022 走看看