在 int 变量中搜索特定数字

Searching for a specific number in a int variable

我目前 "learning" JavaScript + Android 学校工作室,我遇到了一个小问题,我无法在 Google 上找到正确答案:

我想知道一个 int 变量是否有一个特定的数字,例如,我正在寻找数字 7 现在 int numberOne = 25824 里面没有 7,但是 int numberTwo = 12387 里面有一个.有没有办法在 int 变量中搜索特定数字?

我尝试将 int 转换为新的字符串变量,但不知何故这不起作用:(

这是我正在使用的一些代码:

public int round = 1;
public String nummerSieben = "" + round;

button.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {

    if (round % 7 == 0 || nummerSieben.contains("7")==true) {
      ....

    } else {

      ....
    }
  }
});

感谢您的帮助!

两件事:

  • 你的比较不对,方法String:contains() returns一个布尔值,
  • 模块 % 不会断言您的数字将包含 7 或其倍数之一。
  • Integer.toString(value) 轻松将您的 int 转换为 String

了解这一点,你可以做到:

if (Integer.toString(round).contains("7")) {
     // IT CONTAINS THE NUMBER!
} else {
     // IT DOES NOT CONTAIN THE NUMBER
}
public int round = 1;
public String nummerSieben = "" + round; // nummerSieben is now "1"

您正在对 nummberSieben 的值进行硬编码。您大概需要从视图中获取一些值,然后对其进行测试。如果你在 int 中得到它,请使用

Integer.toString(i).contains("7") // i is whatever number you get from your view.

如果以字符串的形式获取,那么就已经完成了一半的工作,你只需要

i.contains("7")

如上所述,这与 JavaScript 无关 - 你的示例和我的答案都在 Java.

这里是您问题的完美解决方案

public class Finder {
static int round = 123456789;
static String str = String.valueOf(round);

public static void main(String... args) {
    if (str.contains("7")) {
        System.out.println("Found");
    } else {
        System.out.println("Can't found...");
    }
  }
}

只需将您的整数转换为字符串,然后尝试从该字符串中找到特定值。

您无需转换为字符串即可搜索整数中的特定数字。 您可以为此目的使用数学。 这是代码:

private static boolean isFound(int round) {

    while (round > 0) {
        if (round % 10 == 7)
            return true;
        round /= 10;
    }
    return false;
}

基本上这段代码所做的是检查每个最后一位数字是否等于 7,如果不等于 7,他将 num 除以 10 并删除最后一位数字,再次检查后,它会一直这样做直到没有数字为止(num=0 ) 或者他会找到 7.