簡體   English   中英

Java-檢查字符串之間的空間

[英]Java - check space between string

我使用Java Swing開發了一個比較文本工具。 我的比較登錄名是這樣的。

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

我所做的是,我基本上用" "(space) split了字符串,然后添加到我的數組列表中。 arraylist將如下所示。

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

然后,我將array1中的第一個元素與array2中的第一個元素進行比較。 如果等於,則比較為PASS ,如果失敗,則需要顯示為FAIL 輸出將是這樣。

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

我在需要顯示間距的地方也做了改進。 所以我的最終輸出需要像這樣。

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

知道我該如何實現嗎? 請指教。

嘗試用數組中的元素替換原始字符串的一部分,其中元素將通過或失敗的信息“增強”。

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);

我試圖對此進行一些模擬,結果如下:

String A = "Hello World  Java"

輸出:

[您好,World,,Java]

String B = "Hello World Java"

輸出:

[您好,世界,Java]

因此,要解決此問題,我可以使用replace來清理最終輸出,例如:

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

我認為它將適用於所有輸入。

希望它能幫助^^

這是你想要的嗎?

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM