2015-12-02 105 views
-2

我正在編寫一些代碼,但不確定如何設置,因此用戶只能輸入特定的字母進行評分。 (A,B,C,D,F)如何只允許輸入字母?

import java.io.IOException; 
import java.util.Scanner; 

public class Forloop { 

public static void main(String[] someVariableName) throws IOException { 

String Grade1; 
String Grade2; 
String Grade3; 
String Grade4; 
String Grade5; 


Scanner in = new Scanner(System.in); 
System.out.println("This program will ask you to input five grades \n"); 

System.out.println("Please enter leter grade one. \n"); 
Grade1 = in.next(); 
System.out.println("Please enter leter grade two. \n"); 
Grade2 = in.next(); 
System.out.println("Please enter leter grade three. \n"); 
Grade3 = in.next(); 
System.out.println("Please enter leter grade four. \n"); 
Grade4 = in.next(); 
System.out.println("Please enter leter grade five. \n"); 
Grade5 = in.next(); 
System.out.println("Your grades are ==>"); 
System.out.println(Grade1); 
System.out.println(Grade2); 
System.out.println(Grade3); 
System.out.println(Grade4); 
System.out.println(Grade5); 

} 
} 

回答

4

變量應該以小寫字母開頭。

爲了確保只輸入有效的數據,循環回去並再次詢問是否錯誤。

字母拼寫爲2 t's。使用nextLine()而不是next()

檢查有效文本(對於這種情況)的最簡單方法是正則表達式,例如,

String grade1; 
do { 
    System.out.println("Please enter letter grade one: "); 
    grade1 = in.nextLine(); 
} while (! grade1.matches("[ABCDF]")); 
2

使用這種方法。

import java.io.IOException; 
import java.util.Scanner; 


public class Forloop { 

    public static void main(String[] someVariableName) throws IOException { 

    String[] grades = new String[5]; 
    Scanner in = new Scanner(System.in); 
    System.out.println("This program will ask you to input five grades \n"); 

    for(int i = 0; i < grades.length; i++) { 
     System.out.println("Please enter letter grade " + i + "\n"); 
     grades[i] = in.nextLine(); 
     while(!grade[i].matches("[abcdfABCDF]")) { 
     System.out.println("Please enter a grade from A to F"); 
     grades[i] = in.nextLine(); 
     } 
    } 

    System.out.println("Your grades are ==>"); 
    for(int i = 0; i < grades.length; i++) { 
     System.out.println(grades[i]); 
    } 
    } 
} 
+1

沒有等級'E'。 – Andreas

相關問題