我目前正在“学习”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 {
....
}
}
});
感谢您的帮助!
答案 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。