[英]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.