[英]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"}
。 請注意,數組的長度為3
而Arrays#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.