導航:首頁 > 編程語言 > 重新輸入java

重新輸入java

發布時間:2024-02-05 02:26:00

A. java基礎,關於流程式控制制的問題:輸入錯誤,提示錯誤並且重新輸入。 這個快把我整崩潰了,請大家幫幫我

題主的問題大體就是如何判斷用戶的輸入是否合法。這里最方便的就是使用正則表達式(Regular Expression,簡稱 Regex)。


正則表達式是一個字元串,它代表的是一定的字元串模式(比如郵箱的模式就是 "數字或字母 + @ + 數字或字母 + . + 頂級域名名稱"),當用戶輸入一個字元串時,符合這個模式的字元串會通過驗證,而不符合的則會匹配失敗。現在幾乎所有網站的郵箱密碼身份證號等的驗證都會使用正則表達式。


Java 的 String 類自帶有一個 matches 方法提供了簡單的正則表達式匹配功能,只需使用這個方法就可以完成你要求的匹配任務。代碼如下:


importjava.util.Scanner;

publicclassMyTest{

//用於匹配身份選擇和收入的正則表達式
privatefinalStringIDENTITY_REGEX="[0-2]";
privatefinalStringINCOME_REGEX="[0-9]*\.?[0-9]*";

//代表身份和收入的字元串
privateStringstatus_string;
privateStringincome_string;

//轉換為int和double後的身份和收入
privateintstatus;
privatedoubleincome;

publicvoidComputTax(){

Scannerinput=newScanner(System.in);

//一直循環直到到達break語句退出
while(true){
System.out.println("0-單身納稅人,1-已婚共同納稅人,2-已婚單獨納稅人"+
" "+"請選擇你要納稅的身份:");

//讀取用戶輸入的原始字元串並與正則表達式相匹配
status_string=input.nextLine();
//匹配失敗會返回while一開始
if(!status_string.matches(IDENTITY_REGEX)){
System.out.println("輸入錯誤,只能輸入0~2之間的數");
continue;
}

//匹配成功則會將輸入轉換為整數並退出循環
status=Integer.parseInt(status_string);
break;
}

//同理
while(true){

System.out.println("請輸入你的收入:");

income_string=input.nextLine();

if(!income_string.matches(INCOME_REGEX)){
System.out.println("收入輸入有誤,請重新輸入");
continue;
}

income=Double.parseDouble(income_string);
break;

}

//輸出相應的稅收
if(status==0){

//使用printf保留兩位小數,不然double輸出的精度太多影響可讀性
System.out.printf("你選擇的身份是單身納稅人 你應當繳納的稅收為:%.2f元 ",
income*0.1);

}elseif(status==1){

System.out.printf("你選擇的身份是已婚共同納稅人 你應當繳納的稅收為:%.2f元 ",
income*0.2);

}else{

System.out.printf("你選擇的身份是已婚單獨納稅人 你應當繳納的稅收為:%.2f元 ",
income*0.3);

}
}

publicstaticvoidmain(String[]args){

System.out.println("------------------歡迎使用納稅查詢--------------------");
MyTestmyTest=newMyTest();
myTest.ComputTax();


}

}


運行結果為:



有關正則表達式的寫法,請參考

http://deerchao.net/tutorials/regex/regex.htm

閱讀全文

與重新輸入java相關的資料

熱點內容
base64encoderjava 瀏覽:482
linux視頻轉換 瀏覽:694
linux與unixshell編程指南 瀏覽:131
vb6反編譯程序錯誤 瀏覽:120
伺服器弄掛有什麼影響 瀏覽:300
安卓軟體為什麼運行不了 瀏覽:524
什麼安卓手機是四方的 瀏覽:477
雲伺服器廠商租用多少錢 瀏覽:353
平安車貸解壓要多久 瀏覽:416
樂一php程序員待遇 瀏覽:164
ZDM命令無法識別 瀏覽:922
解壓小手工A4紙 瀏覽:983
鋼筋加密區是幾倍 瀏覽:671
編譯程序代碼軟體 瀏覽:808
怎麼恢復加密的東西 瀏覽:989
程序員賣茶 瀏覽:699
後端程序員英文 瀏覽:365
滴滴程序員平均月薪 瀏覽:593
如何使用ftp命令 瀏覽:790
小書亭下載的文件在哪手機文件夾 瀏覽:184