java中實(shí)現(xiàn)用戶(hù)輸入格式錯(cuò)誤后,提示用戶(hù)重新輸入,以用戶(hù)輸入負(fù)數(shù)的時(shí)候提示錯(cuò)誤并重新輸入案例為例,代碼如下:
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括禹王臺(tái)網(wǎng)站建設(shè)、禹王臺(tái)網(wǎng)站制作、禹王臺(tái)網(wǎng)頁(yè)制作以及禹王臺(tái)網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,禹王臺(tái)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到禹王臺(tái)省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
public?static?int?a?=?0;
public?static?void?main(String[]?args)?{
while?(true)?{
try?{
a?=?getStr();?
if?(-1?==?a)?{
//用戶(hù)輸入負(fù)數(shù)時(shí)候,提醒用戶(hù)輸入正確的格式。
throw?new?IO?Except?io?n("請(qǐng)輸入大于-1的數(shù)");
}else{
break;
}
}
//?這個(gè)地方實(shí)現(xiàn)IO異常抓取
catch?(IOException?e)?{
//抓取上面提示的錯(cuò)誤,如果上面報(bào)錯(cuò),證明用戶(hù)輸入格式不符合,這里實(shí)現(xiàn)重新輸入。?
System.out.println("erro?is?a,請(qǐng)從新輸入:");
}
}
System.out.print(a);
Test.prints();
a?=?a?+?0;
}
public?static?int?getStr(){
//獲取用戶(hù)輸入的正確數(shù)值?
Scanner?input?=?new?Scanner(System.in);
a?=?input.nextInt();
return?a;
}
public?static?void?prints()?{
//把用戶(hù)輸入的數(shù)值顯示出來(lái)?
System.out.println(a);
}
用
循環(huán)結(jié)構(gòu)
和catch
比如
Scanner scanner = new Scanner(System.in);
System.out.println("請(qǐng)輸入出發(fā)時(shí)間(如19:12):");
while(b==false){
str=scanner.next();
try {
str1=str.split(":");
h1=Integer.parseInt(str1[0]);
m1=Integer.parseInt(str1[1]);
b=true;
} catch (Exception e) {
System.out.println("請(qǐng)輸入正確的格式:");
}
}這是我以前寫(xiě)的一個(gè)小程序
用來(lái)求兩個(gè)時(shí)間的差
輸入兩個(gè)數(shù)字
中間用
:
分開(kāi)并存入str中
然后在try中分割str
如果格式有誤則會(huì)輸出格式有誤然后再次循環(huán)
直至格式正確讓b=true解除循環(huán)
import?java.util.Scanner;
public?class?Test?{
public?static?void?main(String?args[])?{
String?s?=?"";
String?regex?=?"[\u4E00-\u9FA5]+";
Scanner?input;
while(true)?{
System.out.println("請(qǐng)輸入一些漢字:");
input?=?new?Scanner(System.in);
try?{
s?=?input.next();
if(!s.matches(regex))?throw?new?Exception();
}?catch(Exception?e)?{
System.out.println("您輸入的不是純漢字!");
continue;
}
break;
}
System.out.println("您輸入的是:"?+?s);
}
}
java語(yǔ)言提供標(biāo)準(zhǔn)鍵盤(pán)輸入格式化包裝類(lèi)Scanner類(lèi),可以輸入數(shù)字
如果數(shù)字輸入錯(cuò)誤,如何重新輸入呢?
代碼如下:
Scanner in =new Scanner(System.in);
int i = 0;
while(true){
System.out.println("請(qǐng)輸入一個(gè)合法的數(shù)字:");
if (in.hasNext()){//判斷輸入內(nèi)容是否是數(shù)字
i = in.nextInt();//是數(shù)字取出賦值給i
break;
}else{
//輸入的內(nèi)容不是數(shù)字,通過(guò)next()方法取出內(nèi)容 才能重新輸入
System.out.println("你輸入的內(nèi)容in.next()+"不是一個(gè)合法的數(shù)字,請(qǐng)重新輸入!");
}
}
你看明白了嗎?