我在Java中有以下代码,当我运行它时,它会给出一些错误:
String[] stringArray1 = {"1","2","3"};
String[] stringArray2 = {"1","3","5"};
String[] stringArray3 = {"1","4","6"};
public String[] getString(int age) {
List<String> list = new ArrayList<String>();
switch (age) {
case 1:
Collections.addAll(list, stringArray1);
return composeStrings(list);
case 2:
Collections.addAll(list, stringArray2);
return composeStrings(list);
case 3:
Collections.addAll(list, stringArray3);
return composeStrings(list);
default:
return new String[]{"Not find", "Please specify the age"};
}
}
public String[] composeStrings(List<String> list) {
list.add("added a new string");
return (String[]) list.toArray();
}
Run Code Online (Sandbox Code Playgroud)
但当我运行它时,它说: return (String[]) list.toArray();
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
Run Code Online (Sandbox Code Playgroud)
这是什么问题?以及如何解决它?
我有一个关于迭代一个hashmap的问题:
Map<String, Integer> map = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)
我想迭代这个hashmap并使用以下代码打印输出键和值对:
Iterator iterator = portMap.keySet().iterator();
Run Code Online (Sandbox Code Playgroud)
但它表明我要转换portMap.keySet().iterator();为(Iterator)portMap.keySet().iterator();但是iterator()作为迭代器已经返回,为什么我需要转换它?我检查了一些其他代码,没有演员的返回值iterator(),原因是什么,以及如何修复它?
我需要使用正则表达式匹配以下字符串:
"The value is 0x0208 and the type is INTERNATION"
Run Code Online (Sandbox Code Playgroud)
我想获取数字 02 和 08,并将它们存储到不同的两个变量中,我使用以下正则表达式:
repexp "0x(\[0-9]+)\[^\\n]+INTERNALION" "The value is 0x0208 and the type is INTERNATION" whole first second
Run Code Online (Sandbox Code Playgroud)
无法获取第二个,如何解决?
我在C中有以下代码:
int array[5] = {0,1,2,3,4};
int * p = &array[0];
Run Code Online (Sandbox Code Playgroud)
如何使用指针p获取此数组的大小p指向?