我编写了一个排序函数,它可以对所有内容进行排序,但是如果两个单词之间有空格,它会将空格排序到开头并删除最后一个字符串元素,为什么会发生这种情况?我尝试了 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());
}
最佳答案
首先,最好不要使用 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());
关于java - 请问我在这段代码中做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14457266/