繁体   English   中英

如何连接整数和字符串

[英]How to concatenate int and string

我试图在Java中组合两个数组,一个数组与字符串,另一个数组与整数:

int [] intArray = {1, 2, 3}; 
String [] strArray = {"Hello", "World"};

我正在尝试获得以下两个结果:

Object [] combinedObjects = {1, 2, 3, "Hello", "World"};
String [] combinedStrings = {"1", "2", "3", "Hello", "World"};

编辑:我发布答案后,您的问题已更改,并且似乎发布了更合适的答案,而不是删除我的帖子,我将保留最后一点,以防您以后需要从连接数组中进行任何转换在您的项目中。

您还可以选择解析数据(如果您想从数组中获取整数的值,这可能对您很有用。

int tempInt = Integer.parseInt(tempString);

或者:

String tempString = String.valueOf(tempArray[i]);

可以在javadevnotes上找到有关更改类型的很好的参考。

您应该将Integer值转换为String以解决您的问题,因为Array可以具有一种信息类型:

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 教程的 创建,初始化和访问数组部分中了解有关数组的更多信息。

您有两种方法:

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数组中有答案

如果您不习惯使用非常旧的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,那么代码将显得更短:

        Collection<Object> combined = Stream.concat(
                                  intCollection.stream(),
                                  strCollection.stream())
                             .collect( Collectors.toList() );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM