簡體   English   中英

比較兩個不同大小數組的元素,並在Java中返回布爾數組

[英]Compare elements of two different size arrays and return boolean array in java

我仍然是Java的初學者,希望能對您有所幫助。 我有兩個不同大小的數組,我想比較它們的元素。 返回值是一個int [],具有較大數組的長度。 int []應包含1和0。 1表示元素相同,0表示元素不相同。 當然,其余的int []應該為零,因為它要長得多。 不幸的是,我得到這個錯誤:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1

我的方法有什么問題?

public static int[] createVector(String[] longArr, String[] shortArr) {
    int l = Arrays.toString(longArr).length();
    int s = Arrays.toString(shortArr).length();
    int[] b = new int[l];
    for (int i = 0; i < l; i++) {
        b[i] = 0;
        for (int j = 0; j < s; j++) {
            if (longArr[i].equals(shortArr[j])) {
                b[i] = 1;
            }
        }
    }
    return b;

}

Arrays.toString(longArr).length(); 的返回長度String通過創建Arrays#toString它創建String類似[a, b, c]為字符串array {"a", "b", "c"} 請注意,數組的長度為3Arrays#toString#length將返回>3

您可以使用longArr.length類似 shortArr.length )來獲取數組的length

您應該使用longArr.length ,而不是Arrays.toString(longArr).length() 后者返回數組的字符串表示形式,而不是實際的數組。

同樣,創建長度等於較長數組的零的數組可能會更容易。 然后,您只需要遍歷較小數組的長度,然后根據需要將零更改為1。

您可以使用length屬性訪問數組的大小。

longArr.length

Arrays.toString(longArr).length()返回數組的字符串表示形式的長度,該長度可能看起來[more, like, this]並且包含額外的字符。

暫無
暫無

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

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