如何用java解决这个问题?

时间:2016-08-17 11:43:17

标签: java

用户输入票证和票证应该以B,E,F开头(不区分大小写,也可以接受),然后是3位数。

如果他们输入正确的票证格式而不是预订票 否则无效的票证错误。

例如。

  

java Ticket   输入票证>> B100   价格200.0美元   java Ticket   输入票证>> A609   票证无效,票证必须以B,F或E开头   java Ticket   输入票证>> 1234567890987   票证无效,长度错误,长度必须在4到10之间   包容性

代码是

public static final StringBuilder GET_SEARCH_USER_DETAIL = new StringBuilder().
            append(" SELECT * FROM  m_user_master").
            append("WHERE M_User_Name = IFNULL(NULL,M_User_Name)AND Login_id = IFNULL('?',Login_id) ");

2 个答案:

答案 0 :(得分: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

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