簡體   English   中英

請我在這段代碼中做錯了什么

[英]Please what am i doing wrong in this code

我寫了一個排序功能,它可以對所有內容進行排序,但是如果兩個單詞之間有一個空格,它會將空格排序到開頭並刪除最后一個字符串元素,這是為什么呢? 我試過了String.trim()方法來擺脫空格,但沒有用,我需要幫助

private void SortStringsActionPerformed(java.awt.event.ActionEvent evt) {                                            
         // TODO add your handling code here:
         String str = TextArea.getText();

     String[] words = str.split(" ");

        int length = words.length;
    String temp; 
    for(int i=0; i<=length-1; i++){
            for(int j=0; j <length-1;j++){
            if(words[i].compareToIgnoreCase(words[j]) == 0 ){}
            else if (words[i].compareToIgnoreCase(words[j]) < 0){   
                                temp = words[i].trim();
                words[i] = words[j].trim();
                words[j] = temp;
            }else{} 
        }
    }
        /*
    String str2="";
    for (int i=0; i < length-1; i++) {
            str2+=words[i]+" ";
        }
        */
        StringBuilder str2 = new StringBuilder();
        for(int i=0; i<length-1; i++) {
            str2.append(words[i]).append(" ");
        }
        TextArea.setText(str2.toString());

    }                            

如果要對“任何”進行排序,只需使用java.utils.Collections類。 它具有用於實現Comparable的元素的排序方法:

static <T extends Comparable<? super T>> void sort(List<T> list)

或者,您可以指定自己的比較器:

static <T> void sort(List<T> list, Comparator<? super T> c)

這比編寫和調試自己的排序代碼要容易。

這是一個示例: http : //www.vogella.com/blog/2009/08/04/collections-sort-java/

首先,最好不要使用for(int i=0; i<=length-1; i++) ,而是使用for(int i = 0; i < length; i++)

這也是刪除最后一個元素的原因-您使用了for(int i=0; i<length-1; i++)而不是for(int i=0; i<length; i++)

編輯:並且要禁用空格,您可以使用: TextArea.setText(str2.toString().trim());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM