排序字符串按字母顺序

问题描述:

嗨,我想按字母顺序得到这些水果有人可以帮助,因为当我尝试运行该程序关闭,并说NullPointer异常java郎,但它编译没有问题,我认为问题与.compareTo行我也不太清楚排序字符串按字母顺序

import java.io.*; 
import java.util.Scanner; 
import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 
/** 
* Write a description of class rigthOrder here. 
* 
* @author (your name) 
* @version (a version number or a date) 
*/ 
public class rigthOrder 
{ 
    public static void main (String args []) throws IOException 
    { 
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
      int i; 

      String fruit [] = new String[1000]; 
      List<String> fruitsList = Arrays.asList (fruit); 

      fruit[0] = "orange"; 
      fruit[1] = "bananna"; 
      fruit[2] = "apple"; 
      fruit[3] = "grape"; 
      fruit[4] = "plum"; 

     // for(i = 0; i < fruit.length; i++) 
      { 
      // fruit [i] = fruit [i].toUpperCase(); 
      } 
      Bubble_sort(fruit); 
      for(i = 0; i < fruit.length; i++) 
      { 
      System.out.println(fruit [i]); 
      } 
     } 
    public static void Bubble_sort(String [] fruit) 
     { 
      int i, j, size = fruit.length; 
      String temp; 

      for(i = 0; i < size-1; i++) 
      { 
      for(j = i + 1; j < size; j++) 
      { 
       if (fruit[j].compareTo (fruit[i]) < 0) 
       { 
        temp = fruit[i]; 
        fruit[i] = fruit [j]; 
        fruit[j] = temp; 
      } 
     } 
     } 
    } 
} 
+0

你觉得有必要实现自己的泡沫排序的任何理由?这是一项任务吗? – StilesCrisis

+0

嗨是的,我们必须使用bubblesort – user2433281

+0

,然后写入文件 – user2433281

String fruit[] = new String[1000]; 

String数组元素的默认值是null。这就是为什么Arrays.asList(fruit)抛出NPE。

+0

谢谢你将得到用户输入来填充 – user2433281

您制作了1000个元素的数组,并且只填充了其中的5个元素。

 String fruit [] = new String[1000]; 

使该数组长度合适,它将停止失败。

+0

谢谢你的工作,但现在用户将无法在程序后添加更多的水果? – user2433281

您声明大小的数组1000

String fruit [] = new String[1000]; 

然后填补这些1000个时隙

fruit[0] = "orange"; 
fruit[1] = "bananna"; 
fruit[2] = "apple"; 
fruit[3] = "grape"; 
fruit[4] = "plum"; 

什么是在休息五?

+0

是得到用户输入更多的水果后来在程序中可以做它改变它使程序工作谢谢 – user2433281

String fruit [] = new String[5]; 

这将解决您的问题。

除了答案的休息,你也可以声明数组以静态方式:

String[] fruit = new String[] {"orange", "bananna", "apple", "grape", "plum"} 

这样的大小是自动计算。