2017-02-02 64 views
-2

我有一個問題,我需要一些建議:我需要編寫一個稱爲hasEight()布爾方法,它需要一個int作爲輸入,並且如果所述數目包含數字8返回true(例如,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,真正返回。否則,數字除以10(整數除以最後一位數字被刪除)並開始另一次迭代。當所有數字被檢查(8或不)時,數字變爲0並且循環停止。

+0

感謝您的幫助。我用你的建議@Krisha Teja –

相關問題