java 输入数字到数组_java输入数字,将其存入数组

importjava.util.Scanner;publicclasstt{publicstaticvoidmain(String[]args){while(true){System.out.println("请输入数字,将其存入numbers[]数组中");Scannerscanner=newScanner(S...

import java.util.Scanner;

public class tt {

public static void main(String[] args) {

while (true){

System.out.println("请输入数字,将其存入numbers[]数组中");

Scanner scanner = new Scanner(System.in);

String line = scanner.nextLine();

ArrangedNumbers arrangeNumbers = new ArrangedNumbers();

int[] numbers = arrangeNumbers.deleteSpaces(line);

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

System.out.println("numbers[" + i + "]=" + numbers[i]);

if (line.length()==line.indexOf(" ")) {

break;

}

}

}

}

}

class ArrangedNumbers

{

/**

* 删除字符串前后的空格,得到新字符串

* 并删除新字符串间的空格,将得到的字符串保存到数组中

* 得到整型的数字

*

* @param line 字符串为了得到整型的数字用

* @return 返回integerNumbers[]数组

*/

public int[] deleteSpaces(String line)

{

int[] numbers = new int[line.length()];

int i = 0;

line = line.trim();

int begin = 0;

int end = line.indexOf(" ");

for (; end >= 0 && end < line.length(); begin++)

{ numbers[i++] = Integer.parseInt(line.substring(begin, end));

/*

* 把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] = Integer.parseInt(line.substring(begin));

int[] integerNumbers = new int[i + 1];

for (int j = 0; j < i + 1; j++)

integerNumbers[j] = numbers[j];

return integerNumbers;

}

}

问题:

输入空行时不能退出程序,而且报错?

我觉得是if (line.length()==line.indexOf(" ")) {

break;

}

错误,请问要如何改?

需要的结果:

请输入数字,将其存入numbers[]数组中

1

numbers[0]=1

请输入数字,将其存入numbers[]数组中

4 5

numbers[0]=4

numbers[1]=5

请输入数字,将其存入numbers[]数组中

(当输入空行时退出程序)

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值