繁体   English   中英

Java:使用 substring() 和 length() 对来自字符串输入的数字进行交叉求和

[英]Java: cross sum of numbers from string input using substring() and length()

我是 Java 的新手,我应该只使用 substring() 和 length() 方法以及 Integer.parseint() 创建交叉求和。 我很难找出这个练习的解决方案(输入:123;Output:6,(即 1+2+3 = 6)。我想我不明白循环是如何工作的。这就是我尝试过的至今:

import java.util.Scanner;

public class Quersumme {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        System.out.println("Gebe Sie eine Zahl ein ---->  ");
        Scanner scan = new Scanner(System.in);
        
        String zahlSumme;
        String subStr;
        int num;
        
        zahlSumme = scan.nextLine();
        subStr = zahlSumme.substring(0);
        num = Integer.parseInt(subStr);
        
        int sum = 0;
        
        for (int i = 0; i < num; i++) {
             sum += i; 
        }
        
        System.out.println("Die Summe ist: " + sum);
        
        scan.close();
        }

    }


输入:123 Output:7503

import java.util.Scanner;

/**
 * 
 */

public class QuerSumme3 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        
        System.out.println("Gebe Sie eine Zahl ein ---->  ");
        
        Scanner scan = new Scanner(System.in);
        String zahlSumme;
        
        zahlSumme = scan.next();
        String substr;
        int sum = 0;
        
        substr = zahlSumme.substring(zahlSumme.length());
        
        for(int i = 0; i < substr.length(); i++) {
            i = Integer.parseInt(substr);
            sum += i;
        }
        
        System.out.println("Die Summe ist:----->" + sum);
    }

}

输入:123 Output:0

我不希望在这里找到问题的解决方案,但只是一些建议我做错了什么,最重要的是,为什么第一次尝试会给我 7503。非常感谢你提前。

在您的第二个代码中,您使用的是用i索引的 for 循环

for(int i = 0; i < substr.length(); i++) {

但是你正在更新这个索引

i = Integer.parseInt(substr);

我觉得更好的方法是

{
    Scanner scan = new Scanner(System.in);
    String zahlSumme;
    
    zahlSumme = scan.next();
    int sum = 0;
    
    int i = 0;
    for(i = 0; i < zahlSumme.length() - 1; i++) {
        sum += Integer.parseInt(zahlSumme.substring(i, i + 1));
    }
    // add the last char
    sum += Integer.parseInt(zahlSumme.substring(i));
    System.out.println("Die Summe ist:----->" + sum);    

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM