我的代码..
package com.xchanging.selenium.utility;
import java.io.IOException;
import java.util.LinkedHashMap;
import org.apache.commons.lang3.ArrayUtils;
public class DataProviderConvertor extends ReadExcel {
public static Object[][] convertData(String sheetName, String testCaseName)
throws IOException {
LinkedHashMap<String, String> table = ReadExcel.getData(sheetName,
testCaseName);
String[] myStringArray = new String[table.size()];
for (String key : table.values()) {
System.out.println("Keyvalues " + key.toString());
String value = key.toString();
ArrayUtils.add(myStringArray, value);
}
System.out.println("1st Index: " myStringArray[0]);
}
}
它正在返回
Keyvalues Y
Keyvalues ie
Keyvalues QC
Keyvalues Yes
Keyvalues Rework Checklist Comments
Keyvalues Yes
Keyvalues MRI Updated Comments
1st Index: null
我期待这个数组中有6个元素,但都返回NULL ..为什么它没有返回预期值.. ??
答案 0 :(得分:2)
如何更简单的方式。
public static Object[][] convertData(String sheetName, String testCaseName)
throws IOException {
LinkedHashMap<String, String> table = ReadExcel.getData(sheetName,
testCaseName);
String[] myStringArray = table.values().toArray( new String[ 0 ] );
System.out.println("1st Index: " + myStringArray[0]);
}
答案 1 :(得分:1)
尝试
for (String key : table.values()) {
System.out.println("Keyvalues " + key.toString());
String value = key.toString();
myStringArray =ArrayUtils.addAll(myStringArray, value);
}
或者
int cnt=0;
for (String key : table.values()) {
System.out.println("Keyvalues " + key.toString());
String value = key.toString();
myStringArray[cnt++] =value;
}
答案 2 :(得分:1)
ArrayUtil.add 方法复制数组,然后在新复制数组的末尾添加新元素。
所以,我认为问题出在你的代码中。
这就是myStringArray显示大小为0.的原因。复制myStringArray并形成一个新的字符串数组,然后将元素添加到其中。
答案 3 :(得分:0)
ArrayUtils.add(myStringArray, value);
此方法创建并返回添加了value
的新数组。
您需要指定结果:
myStringArray = ArrayUtils.add(myStringArray, value);
必须以这种方式完成,因为数组无法调整大小。
答案 4 :(得分:0)
你可以尝试这个 - :
int index =0;
for (String key : table.values()) {
System.out.println("Keyvalues " + key.toString());
String value = key.toString();
myStringArray[index++] = value;
}
答案 5 :(得分:0)
只需要进行两项更改,否则代码完全没问题。
1。)String[] myStringArray = new String[table.size()];
,改为
String[] myStringArray = null;
2。)ArrayUtils.add(myStringArray, value);
更改为
myStringArray = ArrayUtils.add(myStringArray, value);
您可以阅读并调试此方法in API。