java怎么用java.util.Scanner添加字符串保存到数组中?
写一个通讯录程序,实现动态添加用户,并可以输出所有排序后的用户。排序方式a~z,A~z。例如:any,Tom….。只能用数组、循环;多谢!下面是自己写的;但结果却是这样输...
写一个通讯录程序, 实现动态添加用户,并可以输出所有排序后的用户。 排序方式a~z,A~z。 例如:any,Tom….。
只能用数组、循环;
多谢!下面是自己写的;但结果却是这样
输入两次时结果为[null,sss];
a[0]没有赋值进去;
Scanner s = new Scanner(System.in);
String t="0";
int i = 0;
String name ;
while(!(t.equals(-1))){
System.out.println("请输入姓名(结束请输入(-1)):");
String[]a=new String[i+1];
a[i] = s.next();
System.out.println(Arrays.toString(a));
i++;
}
String name = null;
Scanner s = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
for (int i = 0;; i++) {
System.out.println("请输入姓名,返回请输入“-1”:");
name = s.next();
if (!(name.equals("-1"))) {
sb.append(name).append(",");
} else if (name.equals("-1"))
break;
}
String names[] = sb.toString().split(",");
Arrays.sort(names);
System.out.println(Arrays.toString(names)); 展开
只能用数组、循环;
多谢!下面是自己写的;但结果却是这样
输入两次时结果为[null,sss];
a[0]没有赋值进去;
Scanner s = new Scanner(System.in);
String t="0";
int i = 0;
String name ;
while(!(t.equals(-1))){
System.out.println("请输入姓名(结束请输入(-1)):");
String[]a=new String[i+1];
a[i] = s.next();
System.out.println(Arrays.toString(a));
i++;
}
String name = null;
Scanner s = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
for (int i = 0;; i++) {
System.out.println("请输入姓名,返回请输入“-1”:");
name = s.next();
if (!(name.equals("-1"))) {
sb.append(name).append(",");
} else if (name.equals("-1"))
break;
}
String names[] = sb.toString().split(",");
Arrays.sort(names);
System.out.println(Arrays.toString(names)); 展开
展开全部
呃..你每循环一次 就new一个数组出来,但i又在自加
所以结果就是 你无论输入几次 都会只有最后一个值.比如你输入5次,就是[空,空,空,空,X].
每次循环 new了之后 数组就是新的了 跟之前的不一样
放外面申明就行了.
刚接触java吧 ..看样子应该没学变长数组ArrayList.你应该是希望没增加一条信息,数组长度就增加一个,这个可以手动实现的,自己多考虑下,对你有好处.这里就没必要了
所以你在外面 申明一个定长的数组就行了 主要添加信息不要越界就ok
所以结果就是 你无论输入几次 都会只有最后一个值.比如你输入5次,就是[空,空,空,空,X].
每次循环 new了之后 数组就是新的了 跟之前的不一样
放外面申明就行了.
刚接触java吧 ..看样子应该没学变长数组ArrayList.你应该是希望没增加一条信息,数组长度就增加一个,这个可以手动实现的,自己多考虑下,对你有好处.这里就没必要了
所以你在外面 申明一个定长的数组就行了 主要添加信息不要越界就ok
更多追问追答
追问
放在外面声明又无法确定数组长度
追答
跟你说说手动实现变长数组原理吧
1.你先声明一个定长数组array, 比如长度是5
2.定义一个字段size记录当前数组内添加了多少条目,每次添加信息进数组,你size相应改变 并判断是否大于或等于数组长度 array.length(这里初始值是5)
3.如果大于或等于数组长度了,就重新new一个定长数组tmpArray,长度大于之前的数组长度就好,再把array里的数据copy到tmpArray里
4.因为数组是引用数据类型,最后再让array指向tmpArray就ok
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询