Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 输入数字中某些数字的总和_Java - Fatal编程技术网

Java 输入数字中某些数字的总和

Java 输入数字中某些数字的总和,java,Java,例如,我一直试图从一个数字中求出某个数字的和 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 su

例如,我一直试图从一个数字中求出某个数字的和

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);
 }
我分隔数字的方法。

另外,我有一个小程序来获取输入,而不是使用扫描仪,因为我们在课堂上还没有看过它。

我觉得你的要求相当清楚。 给定一个数字

final int number = 5;
还有一个起始号码

final int input = 54365;
最简单的方法是将该数字转换为
字符串

final int inputStr = String.valueOf(input);
然后,您可以
过滤它的每个字符,并
求和它们

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;
}

所有输入均为字符串格式?嗨,欢迎来到Stackoverflow!请提供您迄今为止尝试过的内容,以便我们能够帮助您。如果您能提供一些代码,那将非常好:)您没有发布任何一行代码,因此我们无法告诉您如何修复/改进它。请阅读并跟随以获得帮助。我是计算机编程新手,我有点不好意思在这里发布我的代码。@Avivdavidalka这样做,发布您尝试的代码。别担心。我们都是新手。这样我们就可以删除“挂起”的内容。我想知道是否可以使用while/for来完成此操作loops@AvivDavidMalka请参阅更新的答案。这可以接受吗?你把所有变量都定为最终变量有什么原因吗?另外,在增强的for循环中,考虑到值会不断变化,
c
如何成为最终值?