如何查找数字是否包含某个数字? (使用Java)

时间:2017-02-02 16:12:47

标签: java

我有一个问题,我需要一些建议:我需要编写一个名为hasEight()的布尔方法,它以int作为输入,如果数字包含数字8,则返回true(例如, 18,808)。

我不想使用"字符串转换方法"。

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

这就是我所做的:

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 个答案:

答案 0 :(得分:4)

如果您不想使用字符串转换方法,那么我认为可以使用此方法。

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

          number=number/10;
      }
      return false; 
} 

答案 1 :(得分: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 。否则,将数除以10(整数除法,以便删除最后一位),并开始另一次迭代。当检查所有数字(8或不是)时,数字变为0并且循环停止。

答案 2 :(得分:1)

    public static boolean hasEight(int numarVerificat)
    {
        while(numarVerificat > 0)
          {
              if(numarVerificat % 10 == 8)
                  break;
              numarVerificat=numarVerificat/10;
          }
          return (numarVerificat>0); 
    }