2017-02-02 15 views
-2

У меня проблема, и мне нужен совет: мне нужно написать логический метод с именем hasEight(), который принимает вход int и возвращает true, если число содержит цифру 8 (например, 18, 808).Как узнать, содержит ли номер цифру? (Использование Java)

Я не хочу использовать «метод преобразования строк».

.........................................

Это что я сделал:

import java.util.Scanner; 

public class Verificare { 

    public static boolean hasEight(int numarVerificat) { 
     int rest = numarVerificat % 10; 
     return rest == 8; 
    } 

    public static void main(String[] args) { 
     Scanner keyboard = new Scanner(System.in); 
     System.out.print("Introduceti numarul pentru verificare: "); 
     int numar = keyboard.nextInt(); 
     Verificare.hasEight(numar); 
     System.out.println("Afirmatia este: " + Verificare.hasEight(numar)); 

     keyboard.close(); 
    } 

} 
+3

Это домашнее задание? Если это так, вы можете пометить его как таковой, покажите нам, что вы пробовали, и объясните, где вы застряли. –

+3

Возможный дубликат [Как получить отдельные цифры номера int?] (Http://stackoverflow.com/questions/3389264/how-to-get-the-separate-digits-of-an-int-number) –

+3

Что такое номер '808'? Десятичное право? Так что это '8x10^2 + 0x10^1 + 8x10^0'. Так; учитывая, как вы будете получать доступ к каждой цифре отдельно? –

ответ

2

Если вы не хотите использовать методы преобразования строк, я думаю, что этот метод можно использовать.

public bool hasEight(int number) 
{ 
     while(number > 0) 
     { 
      if(number % 10 == 8) 
       return true; 

      number=number/10; 
     } 
     return false; 
} 
+0

Спасибо за помощь. Я использовал ваш совет Uday. –

1

Используйте нижеследующую функцию.

boolean hasEight(int num) { 
    int rem; 
    while (num > 0) { 
     rem = num % 10; 
     if (rem == 8) 
      return true; 
     num = num/10; 
    } 
    return false; 
} 

На каждой итерации цикла получается последняя цифра числа (остаток при делении на 10). Если это 8, возвращается true. Else, число делится на 10 (целочисленное деление, так что последняя цифра удаляется), и начинается другая итерация. Когда все цифры проверены (8 или нет), число становится 0, а циклы останавливаются.

+0

Спасибо за помощь. Я использовал ваш совет @ Krisha Teja –

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