Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I need to write a boolean method called hasEight(), which takes an int as input and returns true if the number contains the digit 8 (e.g., 18, 808).

I don't want to use the "String conversion method".

I've tried the below code, but that only checks for the last digit.

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();
    }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.2k views
Welcome To Ask or Share your Answers For Others

1 Answer

If you don't want to use string conversion methods then i think this method can be used.

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

          number=number/10;
      }
      return false; 
} 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...