我一直在尝试从数字中求出某个数字,例如
Number: 5
Input: 54365
Output: The sum of 5's is 10
第二个示例:
Number: 5
Input: 5437555
Output: The sum of 5's is 20
我设法将数字分开,但我找不到求和的条件
一定的数字(例如示例中的数字5
)。
很高兴听到您的想法
public static void main(String[] args) {
int sum = 0;
int number = MyConsole.readInt("Enter a number:");
while (number > 0) {
if (number % 10 == 8) {
sum += 8;
} else {
number /= 10;
}
}
System.out.println("The sum of 8's is:" + sum);
}
我分隔数字的方式。
另外我还有一个小程序来获取输入,而不是使用扫描仪,因为我们在课堂上还没有经历过它。
答案 0 :(得分:1)
您的要求对我来说似乎很清楚。 给定数字
final int number = 5;
还有一个起始号码
final int input = 54365;
最简单的方法是将该数字转换为String
final int inputStr = String.valueOf(input);
然后,您可以filter
为此每个字符,sum
他们
final int sum =
inputStr.chars() // Get a Stream of ints, which represent the characters
.map(Character::getNumericValue) // Convert a char to its numeric representation
.filter(i -> i == number) // Filter for the designated number
.sum(); // Sum all the filtered integers
输出:10
使用相同的方法,但是使用旧式的for
循环
final int input = 54365;
final int inputStr = String.valueOf(input);
final int number = 5;
int sum = 0;
for (final char c : inputStr.toCharArray()) {
final int n = Character.getNumericValue(c);
if (n == number) {
sum += number;
}
}
您的解决方案可以工作
int number = 5;
int input = 543655;
int sum = 0;
while (input > 0) {
if (input % 10 == number) {
sum += number;
}
input /= 10;
}