在 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.
我目前 "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.