我正在尝试将String数组转换为int数组,然后比较如果它们相等的元素,到目前为止,我遇到错误,首先这是将字符串数组转换为int数组的方法
private static int[] convertStringArrayToIntArray(String[] strVals) {
int[] intVals = new int[strVals.length];
for (int i=0; i < strVals.length; i++) {
intVals[i] = Integer.parseInt(strVals[i]);
}
Arrays.sort(intVals);
return intVals;
}
现在下面的方法是我得到异常的地方
public static String ScaleBalancingCorrect(String[] strArr) {
int[] startWeights = convertStringArrayToIntArray(strArr[0].replaceAll("[^0-9,]", "").split(","));
int[] availWeights = convertStringArrayToIntArray(("0," + strArr[1]).replaceAll("[^0-9,]", "").split(","));
if (startWeights[0] != startWeights[1]) { //I get exception here
for (int i = 0; i < availWeights.length; i++) {
// omited code for brevity
这是我遇到异常时正在运行的
public static void main(String [] arg) {
String [] arr = {"34","1277"};
ScaleBalancingCorrect(arr);
}
答案 0 :(得分:1)
也许这只是一个错字,而您想写if (startWeights[0] != availWeights[1])
。
availWeights
将始终至少包含两个元素,因为您在提供的其他元素之前将0作为第一个元素添加。
startWeights
,但是,如您的示例所示,可能只有一个元素(在您的示例中为34
)。