我试图在Java中组合两个数组,一个是字符串,另一个是整数:
var grid = new PropertyGrid();
grid.SelectedObject = this.DataContext;
grid.ShowProperties = ShowPropertiesMode.All;
d.Content = grid;
我想得到两个结果如下:
int [] intArray = {1, 2, 3};
String [] strArray = {"Hello", "World"};
答案 0 :(得分:1)
修改:在我发布回答后,您的问题发生了变化,似乎已经发布了更合适的答案,而不是删除我的 我要留下最后一点,以防你需要做任何事情 稍后在项目中从您加入的数组转换。
您还可以选择解析数据(如果您想从阵列中获取int,这可能对您有用。
int tempInt = Integer.parseInt(tempString);
或者:
String tempString = String.valueOf(tempArray[i]);
可以在javadevnotes
找到更改类型的好参考答案 1 :(得分:0)
您应该将Integer
值转换为String
以解决您的问题,因为数组可以有一种类型的信息:
public static void main(String args[]) {
int[] intArray = {1, 2, 3};
String[] strArray = {"Hello", "World"};
String[] combinedStrings = new String[intArray.length + strArray.length];
int i = 0;
while (i < intArray.length) {
//convert int to string with adding an empty string
combinedStrings[i] = intArray[i] + "";
i++;
}
int j = 0;
while (j < strArray.length) {
combinedStrings[i] = strArray[j];
i++;
j++;
}
for (String val : combinedStrings) {
System.out.println(val);
}
}
您可以在Oracle tutorial中了解有关数组的更多信息,部分创建,初始化和访问数组
答案 2 :(得分:0)
你有两种方法:
1 - 使用arrayList:
ArrayList a = new ArrayList();
for(int i = 0 ; i < intArray.length ; i++)
a.add(intArray[i]);
for(int i = 0 ; i < strArray.length ; i++)
a.add(strArray[i]);
现在你已经在ArrayList中回答了
2 - 使用String.valueof()方法:
String combinedStrings[] = new String[strArray.length+intArray.length];
int index= 0;
for(int i = 0 ; i < strArray.length ; i++)
combinedStrings[index++] = strArray[i];
for(int i = 0 ; i < intArray.length ; i++)
combinedStrings[index++] = String.valueOf(intArray[i]);
现在你已经在combinedStrings数组中找到了答案
答案 3 :(得分:0)
如果您没有坚持使用非常古老的Java版本,那么很少有理由使用Array。特别是如果你想在阵列上操作,放大或缩小它。 java集合框架更加灵活。从java8开始,集合上的流的引入以非常紧凑的编码提供了广泛的操作。
使用流我会解决您的问题如下:
Object [] combinedObjects = Stream.concat(
Arrays.stream( intArray).boxed(),
Arrays.stream( strArray))
.toArray(Object[]::new);
String [] combinedStrings = Stream.concat(
Arrays.stream( intArray).mapToObj( i -> "" + i),
Arrays.stream( strArray))
.toArray(String[]::new);
如果你的输入和你想要的输出应该是一个集合,那么代码会显得更短:
Collection<Object> combined = Stream.concat(
intCollection.stream(),
strCollection.stream())
.collect( Collectors.toList() );