java请输入数字,将其存入数组中

2024-11-06 21:41:39
推荐回答(1个)
回答(1):

我把你的程序修改了,改的地方加了注释,你自己研究一下吧。
import java.util.Scanner;

public class tt {
public static void main(String[] args) {
System.out.println("请输入数字,将其存入numbers[]数组中");
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
ArrangedNumbers arrangeNumbers = new ArrangedNumbers();
String[] numbers = arrangeNumbers.splitSpace(line);
for (int i = 0; i < numbers.length ; i++) { //这里的循环结束条件应该是数组实际大小
System.out.println("numbers[" + i + "]=" + numbers[i]);
}
}
}

class ArrangedNumbers {
public String[] splitSpace(String line) {
String[] numbers = new String[line.length()];
int i = 0;
line = line.trim();
int begin = 0;
int end = line.indexOf(" ");
for (; end >= 0 && end < line.length(); begin++) {
numbers[i++] = line.substring(begin, end); //这里的i需要自加,否则只能设置一个值
//return numbers; 这行没用注释掉
/*
* 把end的值赋值给begin
*/
begin = end;
/*
* 后面肯定至少有一个空格,去掉
*/
end++;
/*
* 当小于整个长度时
*/
while (end < line.length()) {
/*
* 查看下一个空格的位置
*/
end = line.indexOf(" ", end);
if (end > 0 && line.substring(begin, end).equals(" ")) {
/*
* 如果在begin和end之间存在空格,丢弃这个空格
*/
begin = end;
end++;
} else {
/*
* 如果不是空格或者已经到了字符串结尾,退出while循环
*/
break;
}
}
}
numbers[i] = line.substring(begin);
String[] str=new String[i+1]; //你的numbers数组大小要比实际大,有部分是null节点因此声明一个新数组存放有用的.
for(int j=0;j str[j]=numbers[j];
return str;
}
}