这是代码。 我想做一个计算,可以添加用户输入的单行数。
package demo;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int num[]=new int[10];
String input;
input=cin.nextLine();
int a=0,length=input.length();
for(int r=0;r<10;r++){
for(int b=a;b<=length;b++){ char char_at=input.charAt(b);
if(char_at=='+'){String xxx=input.substring(a,b);
int q=Integer.parseInt(xxx);
num[r]=q;
a=b;
}
}}
int sum=0;
for(int j=0;j<=10;j++){sum=sum+num[j];}
System.out.println("sum="+sum);
}}
答案 0 :(得分:1)
你有这些问题
这可以解决您的问题(最多可添加10个数字):
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int num[]=new int[10];
String input;
input=cin.nextLine();
int a=0,length=input.length();
int r=0;
for(int b=a;b<length;b++)
{
char char_at=input.charAt(b);
if(char_at=='+')
{
String xxx=input.substring(a,b);
int q=Integer.parseInt(xxx);
num[r++]=q;
a=b;
}
}
String xxx=input.substring(a,length);
int q=Integer.parseInt(xxx);
num[r]=q;
int sum=0;
for(int j=0;j<=r;j++)
sum=sum+num[j];
System.out.println("sum="+sum);
}
答案 1 :(得分:0)
由于Java中的 索引 是0 Based
因此,如果String的长度为10,那么您实际上正在访问第11个索引,这就是此异常即将到来的原因
所以替换此
for(int b=a;b<=length;b++){
用这个
for(int b=a;b<length;b++){