萌新请求 遇到了问题关于输入多个字符串排序并输入end结束 然后打印出已经输入的数据

SylviaXDD 2020-05-25 01:14:50
代码如下:
package output;
import java.util.Scanner;
class zgg {
public static void main (String[] args) {
Scanner input=new Scanner(System.in);
int num;
System.out.println("Please enter the number of cities");
Scanner in=new Scanner(System.in);
num=in.nextInt();
System.out.println("Please enter the city name");
String x[]=new String[num];
for(int count=0;count<num;count++)
{
x[count]=in.next();
if(x[count].equals("end"))
break;
}
for(int i=0;i<num;i++)
{
for(int j=i;j<num;j++)
{
if(x[i].compareTo(x[j])>0)
{
String temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
}
System.out.println ("\n SORTED list\n -----------");
for(int i=0; i<num;i++)
System.out.println("\t"+x[i]);
}
}

这是问题,请问有没有什么好的方法 可以像这样用简单方法实现输入end 跳出循坏并打印出已经排好序的数据
...全文
267 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
源者鬼道 2020-05-25
  • 打赏
  • 举报
回复
纠错方法: 根据控制台日志可以确定是由于空指针导致的错误,查看代码,代码中有对数组的定义,数组的大小为你控制台输入的数字,10,而你输入的值不够10个,则剩余的数组值为Null,后续代码有用到之后的数组数值,所以报了空指针异常 解决方案: 1:对定义的所有数组值都设定非空值,2:代码中在使用数组值之前进行非空判断,防止空指针异常。

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧