在int变量中搜索特定数字

时间:2015-04-20 11:02:50

标签: java int

我目前正在“学习”JavaScript + Android Studio for school,我遇到了一些问题,我无法在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 {

      ....
    }
  }
});

感谢您的帮助!

4 个答案:

答案 0 :(得分:0)

一些事情:

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

知道这一点,你可以这样做:

if (Integer.toString(round).contains("7")) {
     // IT CONTAINS THE NUMBER!
} else {
     // IT DOES NOT CONTAIN THE NUMBER
}

答案 1 :(得分:0)

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编写的。

答案 2 :(得分:0)

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

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...");
    }
  }
}

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

答案 3 :(得分:0)

您不必转换为字符串以搜索整数中的特定数字。 您可以使用数学来达到此目的。 这是代码:

private static boolean isFound(int round) {

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

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