java - 请问我在这段代码中做错了什么

标签 java

我编写了一个排序函数,它可以对所有内容进行排序,但是如果两个单词之间有空格,它会将空格排序到开头并删除最后一个字符串元素,为什么会发生这种情况?我尝试了 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/

相关文章:

java - 如何调用 IDL 接口(interface)上未指定的方法? [科尔巴,JAVA]

java - 在 JavaFX 中让角色跳跃

java - 回滚事务仍然会在 spring boot 和 hibernate 中增加主键

java - maven工具中插件和依赖的区别(解压jar)

java - 在 Java 中以简短的方式在数组中查找整数

java - Java 有类似 CodeRush 的东西吗?

java - 在java中将字符串的一部分转换为int

java - 使用spring实现登录检查

Java 不同的可用堆大小

java - 无法使用 Spring-MVC 框架定位文件