我有一个问题,我需要一些建议:我需要编写一个名为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();
}
}
答案 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);
}