Java 在int变量中搜索特定数字

Java 在int变量中搜索特定数字,java,int,Java,Int,我目前正在学校“学习”JavaScript+Android Studio,我遇到了一个小问题,在谷歌上找不到正确的答案: 我想知道一个int变量是否有一个特定的数字,例如,我现在正在寻找数字7,int numberOne=25824里面没有一个7,但是int numberTwo=12387里面有一个。有没有办法在int变量中搜索特定的数字 我尝试将int转换为一个新的字符串变量,但不知何故,这不起作用:( 以下是我正在使用的一些代码: public int round = 1; public S

我目前正在学校“学习”JavaScript+Android Studio,我遇到了一个小问题,在谷歌上找不到正确的答案:

我想知道一个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()
    返回布尔值
  • 模块
    %
    不会断言数字将包含7或其中一个倍数
  • Integer.toString(value)
    可以轻松地将
    int
    转换为
    String
了解这一点,您可以:

if (Integer.toString(round).contains("7")) {
     // IT CONTAINS THE NUMBER!
} else {
     // IT DOES NOT CONTAIN THE NUMBER
}
您正在硬编码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,如果不是,他将num除以10并删除最后一个数字,在再次检查之后,它将这样做,直到没有数字剩下(num=0)或者他会发现7。

你会在每次更新
轮时更新
nummerSieben
吗?这是Java,但你说你在使用JavaScript?你需要什么答案?“不知怎么,这不起作用”-这到底是怎么回事?对不起,我总是把这两种语言混在一起,对这些东西来说有点陌生:p不管怎样,我在这里找到了一个有效的解决方案:Integer.toString(round).contains(“7”)谢谢,这很有魅力!我现在做的是:if(round%7==0 | Integer.toString(round).contains(“7”)){很高兴听到这个!!!请注意,
number%7==0
不能确保数字中有一个
7
,因为
14%7==0
但是
14
中没有任何
7
…谢谢你的帮助,在这类事情上是个新手。现在我要用Jordi Castilla的回答:-)谢谢你们的帮助,我发现这是一个更简单的解决方案:Integer.toString(round.contains(“7”)-它工作得很好!是的@ChristianMögnumMöhrle,但我的例子也很好。你们至少可以投票或接受它。这和Jordi Castillas的回答解决了我的问题,我爱你们,谢谢:-)
private static boolean isFound(int round) {

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