java - Java:使用 substring() 和 length() 对字符串输入中的数字进行交叉总和
问题描述
我是 Java 新手,我应该只使用 substring() 和 length() 方法以及 Integer.parseint() 创建交叉求和。我很难找出这个练习的解决方案(输入:123;输出: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 输出: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 输出:0
我不希望在这里找到问题的解决方案,但只是一些建议我做错了什么,最重要的是,为什么第一次尝试会给我 7503。非常感谢你提前。
解决方案
在您的第二个代码中,您使用的是索引为的 for 循环i
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);
}
推荐阅读
- django - 如何调用方法并将其传递给 django 中另一个类模型的字段?
- group-by - Clickhouse group by 差异较小
- c# - 如何从dotnet核心调用在共享库中抛出java.io.Exception的非托管函数
- sql - sql查询记录选择
- firebase - 您能否在多个应用中使用相同的 Google FCM 发件人 ID 和服务器密钥?
- ios - 自动检测整个 View Controller 中的 UIButton 点击以设计 Analytics SDK - iOS
- java - 在全新的 Eclipse 安装中重新索引本地 Maven 存储库失败并出现 java.nio.channels.OverlappingFileLockException
- linux - 在 Linux 上重新启动后保留 dhcpd.leases 的文件权限
- function - 如何让 SSRS 日期正确默认?
- python - 类实例的类型