2016-12-09 2 views
-2

Так что, в основном, мне нужно заставить пользователя ввести ссылочный номер; он не может быть автоматически сгенерирован.Создание и проверка ссылочного номера

Это должно быть 2 номера, буква и номер снова.

Вот мой код, но я не могу на всю жизнь заставить его работать, я работал, используя способ, который автоматически генерирует ссылочный номер, но теперь нам нужно его изменить, чтобы он мог вручную генерировать один и Я просто сидел и смотрел на NetBeans, как «о errmmmm ...»

static String getReferenceNumber() { 
    Scanner refScanner = new Scanner(System.in); 
    String referNumber = null; 
    System.out.println("Please enter a Reference Number"); 
    System.out.println("It must be 2 Letters and 3 Numbers and a Number"); 
    String input = refScanner.nextLine().toUpperCase(); 
    while (!Policy.refCheck(input)) { 

     System.out.println("Please enter a Reference Number"); 
     System.out.println("It must be 2 Letters and 3 Numbers a Nuber"); 




    if (input.length() !=5) { 
     referNumber = false; 
    } else if ((!Character.isLetter(input.charAt(0))) 
      ||!Character.isLetter(input.charAt(1)) 
      ||!Character.isDigit(input.charAt(2)) 
      ||!Character.isDigit(input.charAt(3)) 
      ||!Character.isDigit(input.charAt(4))){ 

    referNumber = false; 
} 


    System.out.println(""); 
    System.out.println(referNumber); 
    return referNumber; 
} 
+0

Когда вы говорите «цифры», вы имеете в виду «цифры»? '0',' 1', ... '9' являются цифрами. '1',' 42', '365' - это числа. * Числа * состоит из одной или нескольких * цифр *. – Andreas

ответ

0

вы никогда не приписывать фактический вклад в referNumber, вместо этого вы просто назначить булевы?

Поэтому в конце вы возвращаете логическое значение или null, когда возвращаемое значение должно быть строкой.

static String getReferenceNumber() { 
    Scanner refScanner = new Scanner(System.in); 
    String referNumber = ""; 
    boolean test = false; 
    while (!test) { 

     System.out.println("Please enter a Reference Number"); 
     System.out.println("It must be 2 Letters and 3 Numbers:"); 

     String input = refScanner.nextLine().toUpperCase(); 

     if (input.length() !=5) { 
      test = false; 
      System.out.println("Invalid reference"); 
     } else if ((!Character.isLetter(input.charAt(0))) 
      ||!Character.isLetter(input.charAt(1)) 
      ||!Character.isDigit(input.charAt(2)) 
      ||!Character.isDigit(input.charAt(3)) 
      ||!Character.isDigit(input.charAt(4))){ 

      test = false; 
      System.out.println("Invalid reference"); 
     } else { 
      referNumber = input; 
      test = true; 
     } 
    } 
    System.out.println(referNumber); 
    return referNumber; 
} 

Я изменил условие цикла while и изменил ваши операторы if. Надеюсь, это поможет.

+0

Привет, как я могу исправить это? Я немного бесполезен, так рано после окончания работы в половине 3 этого утра! – FUBAR

+0

@Jamie вам нужно будет назначить вход для referNumber. Затем, если ссылка не в правильном формате, присвойте «false» ссылочному номеру, в противном случае верните referNumber. –

+0

@Jamie Я также думаю, что есть проблема с вашим циклом while. I –