有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java检查字符串之间的空格

我使用JavaSwing开发了一个比较文本工具。我的比较登录是这样工作的

String A = "Hello World  Java"
String B = "Hello World Java"

我所做的是,我基本上split字符串使用" "(space)然后添加到我的数组列表中。arraylist将如下所示

array1(0) = {Hello} array1(1)={World} array1(2)={Java}
array2(0) = {Hello} array2(1)={World} array2(2)={Java}

然后我比较了使用array1中的第一个元素和array2中的第一个元素。如果它等于,则比较为通过,如果它失败,则我需要显示为失败。结果就是这样

<pass>Hello<pass><pass>World<pass><pass>Java<pass>  

我有一个增强,我需要显示的间距以及。所以我的最终输出应该是这样的

<pass>Hello<pass><quote><pass>World<pass><quote><quote><pass>Java<pass>

你知道我怎样才能做到这一点吗?请给我一些建议


共 (3) 个答案

  1. # 1 楼答案

    我尝试对此进行一些模拟,结果如下:

    String A = "Hello World  Java"
    

    输出:

    [你好,世界,Java]

    String B = "Hello World Java"
    

    输出:

    [你好,世界,Java]

    因此,为了解决这个问题,我使用replace来清理最终输出,如:

    Arrays.toString(yourString.split(" ")).replace(" ", "").replace(",,", ",")
    

    我认为每一个输入都会起作用

    希望对你有帮助

  2. # 2 楼答案

    尝试用数组中的元素替换原始字符串的一部分,其中的元素将被“增强”为通过或失败的信息

    void checkString(String orig, String part, Boolean passed) {
        if (passed) {
            a.replace(part, "<pass>" + part + "<pass>");
        } else {
            a.replace(part, "<fail>" + part + "<fail>");
        }
    }
    

    所以你的例子是:

    String A = "Hello World  Java"
    String B = "Hello World Java"
    
    // Do comparison, like you do
    
    // take your first array
    array1(0) = {Hello} array1(1)={World} array1(2)={Java}
    
    // call method for each part in array
    checkString(A, array1(0), isPassed);
    
  3. # 3 楼答案

    这是你想要的吗

    public static String compare(String[] a, String[] b) {
        String op = "";
        int len = a.length > b.length ? a.length : b.length;
        for (int i = 0; i < len; i++) {
            String aVal = "";
            String bVal = "";
            if (a.length > i) {
                aVal = a[i];
            }
            if (b.length > i) {
                bVal = b[i];
            }
            if (aVal.equals(bVal)) {
                op += "<pass>" + a[i] + "<pass>";
            } else {
                op += "<fail>" + a[i] + "<fail>";
            }
            if (i != len - 1) {
                op += "<quote>";
            }
        }
        return op;
    }
    
    public static void main(String[] args) {
        String A = "Hello World Java1 A";
        String B = "Hello World Java";
        String[] splitA = A.split(" ");
        String[] splitB = B.split(" ");
        System.out.println(compare(splitA, splitB));
    }
    

    输出:

    <pass>Hello<pass><quote><pass>World<pass><quote><fail>Java1<fail><quote><fail>A<fail>