java请输入数字,将其存入数组中
importjava.util.Scanner;publicclasstt{publicstaticvoidmain(String[]args){System.out.p...
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< line.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);
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);
return numbers;
}
}
用参数传递的方法做的,不知道哪里错了?
end >= 0 && end < line.length(); 能不能拆开 展开
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< line.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);
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);
return numbers;
}
}
用参数传递的方法做的,不知道哪里错了?
end >= 0 && end < line.length(); 能不能拆开 展开
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<i+1;j++)
str[j]=numbers[j];
return str;
}
}
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<i+1;j++)
str[j]=numbers[j];
return str;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |