如何只允许输入字母?

时间:2015-12-02 23:30:37

标签: java

我正在编写一些代码,但我不确定如何设置代码,因此用户只能输入某些等级的字母。 (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);

}
}

2 个答案:

答案 0 :(得分:4)

变量应以小写字母开头。

为确保只输入有效数据,请回传并再次询问是否有错误。

信件拼写为2 t

使用nextLine(),而不是next()

检查有效文本(对于这种情况)的最简单方法是正则表达式,例如

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

答案 1 :(得分: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]);
    }
  }
}