關(guān)于控制臺中輸入字符,會把程序輸出的字符覆蓋!!怎么辦?看代碼
public static void main(String[] args) {
String[] a = { "論語","三字經(jīng)"};
System.out.println("歡迎使用啪啪啪借閱系統(tǒng):");
int n =0;
while(n==0){
try{
System.out.println("1.按書名借閱書籍 ? ? ?2.按序號借閱書籍");
//在控制臺輸入數(shù)字命令 ?,這里可能出現(xiàn)異常
Scanner input = new Scanner(System.in);
int number = input.nextInt();
//如果控制臺輸入數(shù)字1
if(number==1){
//遍歷數(shù)組,輸出a[i]中的元素:各個書籍
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
System.out.println("請輸入您要借閱書籍的名稱:");
//在控制臺輸入字符串?
Scanner input2 =new Scanner(System.in);
String name = input2.nextLine();
//對控制臺輸入的字符串進(jìn)行 ?判斷
if(name.equals(a[0])){
System.out.println("您要借閱的書籍為:"+a[0]);
}else if(name.equals(a[1])){
System.out.println("您要借閱的書籍為:"+a[1]);
}else{
System.out.println("您輸入的書籍不存在");
}
}
//當(dāng)控制臺輸入2 (用序號選擇書籍時)
else{
//為了方便就沒有遍歷了
System.out.println("1.論語 ? ? 2.三字經(jīng) ? "+"請輸入序號:");
Scanner input3 = new Scanner(System.in);
? ?int number2 = input3.nextInt();
? ?//對控制臺輸入的序號進(jìn)行判斷,這里可能出現(xiàn)異常
? ?if(number2==1){
? ? System.out.println("您要借閱的書籍為:"+a[0]);
? ?}else if(number2==2){
? ? System.out.println("您要借閱的書籍為:"+a[1]);
? ?}else{
? ? System.out.println("請輸入已提示的數(shù)字序號");
? ?}
}
n = 1;
//開始捕獲可能出現(xiàn)的異常
}catch(InputMismatchException e){
System.out.println("命令輸入錯誤,請根據(jù)提示輸入數(shù)字命令");
n=0;
}catch(Exception e){
System.out.println("Exception系統(tǒng)未知故障");
n=0;
}finally{
System.out.println("啪啪啪");
n=0;
} ? ?
?} ? ? }
2017-01-23
您好啊同學(xué),我剛才看了您寫的代碼,總的來說還是很好的.當(dāng)然了,您的這個問題我以前也遇到過當(dāng)時就沒有去管他.
剛才我看了一會代碼,給你想了一個簡單粗暴一點的方法,就是再"請輸入您的balabala"那兒的前面加上\n
就可以實現(xiàn)自動轉(zhuǎn)行了.但是這個方法治標(biāo)不治本,如圖所示,在前面多了一行空格.你也可以試一試自己的方法,用這個原理把那行空格給弄走.另外\n的意思就是把光標(biāo)轉(zhuǎn)到下一行的意思.是在字符串中使用的,與此類似的還有\(zhòng)t和\r等.我這種屬于是利用腦洞把問題解決的了蛤蛤蛤 ,另外如果有興趣一起學(xué)習(xí)的話,1114196607這是我的QQ
2017-01-23
如圖所示:論語倆字把程序輸出的“論語” 覆蓋掉了變綠了,本應(yīng)該是在最后一排輸出的,,,
2017-01-23
我是個初學(xué)者,作業(yè)能寫出來都對自己感覺不錯了;如有前輩能不介意幫幫我,表示十分感謝?。?!
我的問題是:當(dāng)控制臺里提示:論語、三字經(jīng)時;讓用戶輸入字符時,光標(biāo)不會自動轉(zhuǎn)行,而是把程序中的漢字覆蓋了,然后就沒有然后。。。
必須 自己把光標(biāo)放在最下面才可以