2016-08-17 7 views
-7

пользователя вводит билет и билет должен быть начать с B, E, F (чувствительно к регистру напр. BEF также приемлем) и после этого 3 значного ..как решить эту проблему с помощью java?

, если они входят правильный формат билет, чем книги билет еще недействительный билета ошибка.

например.

ява билет Введите билет >> b100 Стоимость $ 200,0 ява билет Введите билет >> A609 Invalid билет, билет должен начинаться с B, F или E Java Ticket Enter билет >> 1234567890987 утратившими билет, неправильная длина, длина должна составлять от 4 до 10 включительно

код

import java.util.*; 
public class Ticket 
{ 

    public static void main(String[] ar)throws IOException 
    { 
     Scanner keb = new Scanner(System.in); 
     System.out.println("Enter ticket := "); 
     String ticket=keb.nextLine(); 



     if(checkTickt) 
     { 
      System.out.println("valid ticket"); 
     } 
     else{ 
      System.out.println("Invalid ticket, ticket must start with B, F or E"); 
     } 
    } 
} 
+1

чем вопрос? –

+0

В чем ваш вопрос? – marstran

+2

Используйте regex '[B, F, E, b, f, e] [0-9] {3}' – Blobonat

ответ

1

То, что вы пытаетесь достичь, скорее это:

Pattern pattern = Pattern.compile("(?i)[bef]\\d{3}"); 
if (pattern.matcher(ticket).matches()) { 
    System.out.println("valid ticket"); 
} else { 
    System.out.println("Invalid ticket, ticket must start with B, F or E"); 
} 
+0

Вы должны добавить чек на 3 цифры, которые должны появиться после символа imo. –

+0

@RexWagenius good catch Я пропустил эту часть –

2

Попробуйте использовать регулярное выражение:

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

public class Ticket { 

    public static void main(String[] ar) throws IOException { 
     Scanner keb = new Scanner(System.in); 
     System.out.println("Enter ticket:"); 
     String ticket = keb.nextLine(); 
     String pattern = "[BbFfEe][0-9]{3}"; 


     if (ticket.matches(pattern)) { 
      System.out.println("Ticket is VALID."); 
     } else { 
      System.out.println("Ticket is INVALID, it must starts with B, b, F, f, E, e characters following by 3 digits."); 
     } 
    } 
} 

Подробнее: Lesson: Regular Expressions

+0

Неверное сообщение об ошибке. – Blobonat

+0

@Blobonat Конечно, спасибо за ваш комментарий. – DimaSan

Смежные вопросы