Назад | Начало урока | Вперед
Содержание

Глава 7

Задача 7.1 "Проверка кодов "

Курсовые коды в Savanna university имеют фиксированную структуру:три прописные буквы, за которыми следуют три цифры. Напишите класс для таких кодов и включите в него методы для их создания, преобразования в строку и проверки на достоверность. Проверьте класс с помощью небольшой тестовой программы.

Решение

Не понимаю условие задачи.

Можно написать такую программу:

Display-окно. Пользователь вводит код - три прописных буквы и три цифры. Программа должна проверить, действительно ли введены три прописные буквы и три цифры.

Для решения задачи нам может помочь следующая функция, которую я подсмотрел у Шилдта:

private boolean isDelim(char c){

if(" +-/*%^=()".indexOf(c) != -1) return true;
return false;
}

Интересная функция! Ее можно изменить так:

private boolean isBigAlfabet(char c){

if("ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(c) != -1) return true;
return false;
}

То есть при помощи этой функции можно проверить, принадлежит ли символ 'c' прописной букве латинского алфавита.

Аналогично можно проверить принадлежит ли символ массиву арабских цифр.

private boolean isDigit(char c){

if("123456789".indexOf(c) != -1) return true;
return false;
}

Или применить следующую проверку является ли введенный символ цифрой:

if(Character.isDigit(str.charAt(index))){

boolean bul = true;
return true;
}

Программа работает до первого правильного ввода после чего завершается. Можно еще ввести поле, которое будет спрашивать: "Еще один код?"

Код программы:


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;
}
}


Результат :

Подсказка


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz