java字符串是否是全為數(shù)字的判斷

明明是一個(gè)很簡單的程序,但是卻卡了我?guī)讉€(gè)小時(shí),果然不好好學(xué)習(xí)的后果就是這樣。

偏偏旁邊就是很有好感的小姐姐,她在看內(nèi)存運(yùn)行機(jī)制,而我還在學(xué)習(xí)方法的使用。

不好意思去問別人,不想讓她知道我是菜雞,雖然總有一天她會(huì)知道。

但是在她知道之前我一定要追趕到與她差不多才行。


程序的本體是,輸入成績,根據(jù)成績?cè)u(píng)定等級(jí)。

但是如果用Scanner的nextInt,在控制臺(tái)輸入字符時(shí),程序會(huì)崩潰,于是想辦法判斷輸入的是否是數(shù)字,然后再進(jìn)行評(píng)定。

程序如下:

package com.test.demo;

import java.util.Scanner;

public class TestOne {

? ? public static void main(String[] args) {? ??

? ? ? ? Scanner s =new Scanner(System.in);

? ? ? ? String str =null;//把str定義為全局變量,這樣while循環(huán)結(jié)束后也可以使用

????????System.out.println("成績?cè)u(píng)定:");

? ? ? ? //第一次死循環(huán)用于保證成績?cè)u(píng)級(jí)一直運(yùn)行

????????????while(true){

? ? ? ? ? ? boolean cflag =true;//用于是否瑞出第二次死循環(huán)

????????????while(cflag){//利用死循環(huán)判斷輸入的字符是否正確

????????????int count = 0;//如果count=str.length,表名每個(gè)字符都是數(shù)字,于是可以退出

????????????System.out.println("請(qǐng)輸入成績:");

? ? ? ? ? ? ? ? str = s.nextLine();//從控制臺(tái)獲取字符串

????????????char[] chs = str.toCharArray();//將字符串轉(zhuǎn)為字符數(shù)組

????????????for(int i = 0;i<chs.length;i++){

? ? ? ? ? ? ? ? ? ? //聰明方法是:if(str.matches(reqex:"[0-9]*"))

????????????????if(!(chs[i]>='0'&&chs[i]<='9')){

? ? ? ? ? ? ? ? ? ? ? ? System.out.println("輸入的格式有誤,請(qǐng)重新輸入:");

? ? ? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? count++;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? if(count==str.length()){//全是數(shù)字了cflag =false;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? Integer grade = Integer.parseInt(str);//把字符串轉(zhuǎn)換為整型? ? ? ? ? ??

????????????System.out.println(grade);

? ? ? ? ? ? if(grade>95&&grade<=100) System.out.println("太棒了,您的成績?yōu)椋簝?yōu)秀");

? ? ? ? ? ? else if(grade>70&&grade<=95) System.out.println("太棒了,您的成績?yōu)椋褐械?);

? ? ? ? ? ? else if(grade>60&&grade<=70) System.out.println("太棒了,您的成績?yōu)椋汉细?);

? ? ? ? ? ? else if(grade<=60&&grade>40) System.out.println("您的成績不及格!");

? ? ? ? ? ? else if(grade<=40&&grade>=0) System.out.println("抱歉你還是重新學(xué)習(xí)吧!");

? ? ? ? ? ? else{

? ? ? ? ? ? ? ? System.out.println("輸入的成績不和法,請(qǐng)重新輸入:");

? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? }

? ? ? ? ? ? System.out.println("您是否想要退出?Y/N");

? ? ? ? ? ? Scanner ys =new Scanner(System.in);

? ? ? ? ? ? String ex = ys.nextLine().toUpperCase();//把字符串轉(zhuǎn)為大寫

????????????if(ex.equals("Y")){

? ? ? ? ? ? ? ? System.out.println("好的,退出成功!");

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? ? ? else{

? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? }

? ? ? ? }

? ? }

}



現(xiàn)在還不知道簡書里應(yīng)該怎么內(nèi)嵌代碼,于是這段代碼很亂。

放一個(gè)我博客園的鏈接吧,里面的排版就很舒服:

https://www.cnblogs.com/bkytep/p/9483277.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容