Глава 7
Задача 7.1 "Проверка кодов "
Курсовые коды в Savanna university имеют фиксированную структуру:три прописные буквы, за которыми следуют три цифры. Напишите класс для таких кодов и включите в него методы для их создания, преобразования в строку и проверки на достоверность. Проверьте класс с помощью небольшой тестовой программы.
Решение
Не понимаю условие задачи.
Можно написать такую программу:
Display-окно. Пользователь вводит код - три прописных буквы и три цифры. Программа должна проверить, действительно ли введены три прописные буквы и три цифры.
Для решения задачи нам может помочь следующая функция, которую я подсмотрел у Шилдта:
private boolean isDelim(char c){
Интересная функция! Ее можно изменить так:
private boolean isBigAlfabet(char c){
То есть при помощи этой функции можно проверить, принадлежит ли символ 'c' прописной букве латинского алфавита.
Аналогично можно проверить принадлежит ли символ массиву арабских цифр.
private boolean isDigit(char c){
Или применить следующую проверку является ли введенный символ цифрой:
if(Character.isDigit(str.charAt(index))){
Программа работает до первого правильного ввода после чего завершается. Можно еще ввести поле, которое будет спрашивать: "Еще один код?"
Код программы:
import java.io.*;
import javagently.*;
class CheckCode {
CheckCode () {
Display d = new Display ("CheckCode");
d.prompt("Code","ABC123");
for (; ;) {
int count = 0;
d.ready("\nEnter the code and press ready when code entered");
String s = d.getString("Code"); //
if(s.length() != 6){
d.println("Error! Enter 3 capital letters and 3 numbers without spase ");
continue;
}
//проверим три прописные буквы
for(int index = 0; index < s.length()-3;index++){
char aChar = s.charAt(index);
if(isBigAlfabet(aChar)){
count++;
continue;
}
else{
d.println("Error2! Enter 3 capital letters and 3 numbers without spase ");
break;
}
}
for(int i = 3; i < s.length() ;i++){
if(Character.isDigit(s.charAt(i))){
count++;
continue;
}
else{
d.println("Error3! Enter 3 capital letters and 3 numbers without spase ");
break;
}
}
if(count == 6){
d.println(" It is succesfull ! ");
d.println(" Your code is: " + s);
break;
}
d.println(" ");
d.println(" ");
}//end for
}
public static void main (String[] args) {
new CheckCode ();
}
boolean isBigAlfabet(char c){
if("ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(c) != -1) return true;
return false;
}
}
Результат :
Назад |
Начало урока |
Вверх |
Вперед
Содержание