java - 在java中对字符串进行排序时如何忽略空格?

我尝试编写一个程序来检测给定 2 个字符串的字谜。 我的方法是将两个字符串都转换为 char 数组,然后在比较它们之前对它们进行排序。 我知道我可以使用 sort() 函数,但我不想将任何导入用于训练目的。

问题是我希望我的程序在扫描字谜时忽略空白。 在当前版本中,输出是这样的: (三角形,相关)---> true (三角,相关)---> false

虽然两者都应该是正确的。

如有任何帮助,我将不胜感激!

这是我的代码,(请忽略我的评论):

public static boolean anagramCheck(String a, String b) {
        boolean r = true;
        // In Char Arrays umwandeln /
        char[] Ca = a.toCharArray();
        char[] Cb = b.toCharArray();

        // Laengen Abfrage
        int L1 = Ca.length;
        int L2 = Cb.length;

        // Erste For-Schleife

        for (int i = 0; i < L1; i++) {
            for (int j = i + 1; j < L1; j++) {
                if (Ca[j] < Ca[i]) {
                    char temp = Ca[i];
                    Ca[i] = Ca[j];
                    Ca[j] = temp;
                }
            }
        }

        // Zweite For-schleife

        for (int i = 0; i < L2; i++) {
            for (int j = i + 1; j < L2; j++) {
                if (Cb[j] < Cb[i]) {
                    char temp = Cb[i];
                    Cb[i] = Cb[j];
                    Cb[j] = temp;
                }
            }
        }

        // Char Arrays zu Strings
        String S1 = String.valueOf(Ca);
        String S2 = String.valueOf(Cb);

        // Vergleich und Ausgabe

        if (S1.compareTo(S2) == 0) {
            return r;
        }

        else {
            r = false;
            return r;
        }

    }
}

最佳答案

String.replace(String, String) 是非正则表达式替换方法。 所以删除所有空格:

    String S1 = String.valueOf(Ca).replace(" ", "");
    String S2 = String.valueOf(Cb).replace(" ", "");

ab 上执行此操作会更好。

https://stackoverflow.com/questions/70087629/

相关文章:

ruby-on-rails - 如何一次为 Ruby 中的对象分配多个属性

c++ - `shared_ptr::use_count() == 0` 和 `shared_ptr

function - 关于在函数和宏定义中使用结构文字

javascript - 左关联二叉树折叠

r - 在 dplyr 中跨列过滤

spring - 如何在调用构造函数之前注入(inject) spring @Value 注释值?

ios - 如何获取 UTType 图像、音频和视频的所有扩展

flutter - 闪闪发光的动画

javascript - 显示: inline is used时隐藏元素符号

apache-kafka - 如何触发Kafka再平衡?