2015-03-01 3 views
-2

Я новичок здесь и очень новичок в программировании. Я фактически беру Intro для программирования в курсе Java прямо сейчас, и мой учитель не очень полезен, поэтому мне просто хотелось бы, чтобы другие люди помогали мне с этим. Все будет оценено. Моя программа предназначена для генерации номеров ISBN-10 на основе того, что пользователь входит в консоль. пользователь вводит 9 номеров в консоли. То, что я пытаюсь выполнить программой, - это измерение длины введенных символов, а если оно не равно девяти, то оно скажет: «Вы должны ввести 9 чисел». Вот что у меня есть:Как реализовать метод длины строки в Java

Scanner input = new Scanner(System.in); 
    System.out.println("Enter 'C' for console generation of an ISBN, or 'R' for a random generation of an ISBN:"); 
    String letter = input.next().toLowerCase(); 

    if (letter==c) { 
     System.out.println("Enter the first 9 digits of an ISBN:"); 
     int d1 = input.nextInt(); 
     int d2 = input.nextInt(); 
     int d3 = input.nextInt(); 
     int d4 = input.nextInt(); 
     int d5 = input.nextInt(); 
     int d6 = input.nextInt(); 
     int d7 = input.nextInt(); 
     int d8 = input.nextInt(); 
     int d9 = input.nextInt(); 
     int numbers = (d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9); 

     int d10 = (d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11; 
     if (d10 == 10) { 
      System.out.println("Console generated ISBN-10 is " + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + "X"); 
     } 
     else if (numbers.length() != 9) { 

     System.out.println("You need to enter exactly 9 digits"); 
     System.exit(2); 
     } 

Любая помощь с благодарностью благодарит вас !!!

+0

A и что он делает иначе, чем вы ожидаете? –

+0

хорошо не работает. Где он говорит «else if (numbers.length()! = 9)« В нем говорится, что это неправильно. Существует красная линия под всей строкой, и она не будет работать, потому что метод length() работает только в том случае, если в нем нет строки int. Я просто не знаю, как решить эту проблему. – MKBurns

+0

К моменту, когда ваш код достигает 'int numbers = (d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9);' пользователь уже ввел ровно 9 чисел. Вот почему вы можете удалить переменную 'numbers', а также вашу' if' часть. – Clashsoft

ответ

0

Изменить код на:

String numbers = asString(d1) + asString(d2) + asString(d3) ...... + asString(d9); 

Также добавьте эту функцию:

private String asString(int num){ 
    return "" + num; 
} 

Либо вы можете использовать этот код:

String d1 = input.next(); 

который получит входной сигнал от пользователя, как a Строка не как int

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