2013-06-03 62 views
0

嗨,我想按字母順序得到這些水果有人可以幫助,因爲當我嘗試運行該程序關閉,並說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

回答

1
String fruit[] = new String[1000]; 

String數組元素的默認值是null。這就是爲什麼Arrays.asList(fruit)拋出NPE。

+0

謝謝你將得到用戶輸入來填充 – user2433281

0

您製作了1000個元素的數組,並且只填充了其中的5個元素。

 String fruit [] = new String[1000]; 

使該數組長度合適,它將停止失敗。

+0

謝謝你的工作,但現在用戶將無法在程序後添加更多的水果? – user2433281

0

您聲明大小的數組1000

String fruit [] = new String[1000]; 

然後填補這些1000個時隙

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

什麼是在休息五?

+0

是得到用戶輸入更多的水果後來在程序中可以做它改變它使程序工作謝謝 – user2433281

0
String fruit [] = new String[5]; 

這將解決您的問題。

0

除了答案的休息,你也可以聲明數組以靜態方式:

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

這樣的大小是自動計算。