将字符串数组的所有元素设置为一个固定长度

时间:2016-05-31 01:04:05

标签: java arrays string append

我有一个像

这样的字符串

String [] toppings = {“1234”,“56789”,“123456”};

对于每个浇头元素我需要检查长度,如果它小于9,我需要在末尾添加零。

例如,考虑数组的第一个元素,它是1234。 它的长度是4,所以我需要在末尾添加5个零,看起来像“123400000”。

类似地,我需要对浇头中存在的所有元素进行此操作。

最后,我需要将浇头中存在的所有vale连接到一个字符串。意味着我的输出必须看起来像 字符串x =“123400000567890000123456000”。

有什么建议吗?

谢谢,

3 个答案:

答案 0 :(得分:2)

遍历所有项目,右键然后打印它们。在Java 8中:

toppings.stream.map(s -> String.format("%-09d", s)).collect(Collectors.joining());

//        ^                        ^                                ^
// Use the stream API       Right-pad with 0       Munge them all into a single string.

答案 1 :(得分:1)

试试这个。

String x = Arrays.stream(toppings)
    .map(s -> String.format("%-9s", s))
    .collect(Collectors.joining())
    .replaceAll(" ", "0");

答案 2 :(得分:0)

您可以使用.length()来获取长度,然后只需添加" 0"到字符串直到达到9。

String[] toppings = {"1234", "56789", "123456"};

for (int q = 0; q < toppings.length; q++){

    int length = toppings[q].length(); // # of digits
    int maxlength = 9;

    if (length<maxlength){ // only do this if it is below 9
        for (int i = length; i < maxlength; i++){ // go through and add 0's
            toppings[q] = toppings[q] + "0";
        }
    }
}

String mix = "";
for (int q = 0; q < toppings.length; q++){ // add all the strings to one single string
    mix+=toppings[q];
}

System.out.println(mix);

返回:

123400000567890000123456000