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[]数组中
(当输入空行时退出程序)
展开