如何连接int和string

时间:2016-10-07 18:41:15

标签: java concatenation

我试图在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"};

4 个答案:

答案 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() );