1. 程式人生 > >java字符串是否是全為數字的判斷

java字符串是否是全為數字的判斷

ava eth als out 字符串 字符數 [] ++ 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; } } } }

java字符串是否是全為數字的判斷