在java中格式化字符串数组

时间:2013-08-20 12:58:18

标签: java string printing formatting

我有一个包含k个元素的字符串数组。我想使用System.out.format将它们打印出来,但问题是我不知道k。基本上,我想使用类似的东西: System.out.format("%s %s ... k times", str1, str2, ... strk); (其中k是变量)

我正在查看java文档,但找不到这样做的方法。有一个简单的出路吗?

谢谢!

9 个答案:

答案 0 :(得分:37)

你可以使用

System.out.format("%s". Arrays.toString(your_array));

答案 1 :(得分:2)

使用循环:

for (String s : array) {
    System.out.print(String.format("%s ", s);
}
System.out.println();

答案 2 :(得分:1)

for(int i = 0; i < array.length; i++) {
    System.out.print("%s ", array[i]);
}

答案 3 :(得分:1)

Java 8:

String formatted = Stream.of(arrayOfStrings)
    .collect(Collectors.joining(",","[","]"));

String formatted = Stream.of(arrayOfSomethingElse)
    .map(Object::toString)
    .collect(Collectors.joining(",","[","]"));

答案 4 :(得分:0)

尝试:

StringBuilder sb = new StringBuilder();
for(String s : myArray){
    sb.append(s).append(" ");
}
sb.append(myArray.length).append(" times");
System.out.println(sb.toString());              // print the string 

答案 5 :(得分:0)

您是否只想将 k 字符串与每个字符串之间的空格连接起来?您不需要System.out.format。您可以简单地创建一个循环,将它们与StringBuilder

连接在一起
public String concatStrings(String... s) {
    StringBuilder sb = new StringBuilder();
    if (s.length > 0) {
        sb.append(s[0]);
        for (int i = 1; i < s.length; i++) {
            sb.append(' ').append(s[i]);
        }
    }

    return sb.toString();
}

答案 6 :(得分:0)

  

我想为每个字符串指定我想要的字符数。有点像%15s

这只会为每个String指定填充。如果String长度小于格式说明符中指定的值,则使用完整的String。您可以使用substring

void displayArray(String[] str, int characters) {
    for (String s: str) {
        System.out.print(s.substring(0, Math.min(s.length(), characters)) + " ");
    }
    System.out.println();
}

答案 7 :(得分:0)

public static void main(String[] args) {
    // TODO Auto-generated method stub
     String[] stringArrays ={"a","s","d","f",};
     for (int i = 0; i < stringArrays.length; i++) {
        System.out.println(stringArrays[i]);
    }


}

答案 8 :(得分:0)

这是典型的工具箱代码 - 您经常使用和重用的代码,最好保留在静态访问实用程序类(例如StringUtil)中。这是一个适用于各种非基本数组的通用函数,允许您指定分隔符(空格,逗号,斜杠等):

public static <T> void print (PrintStream out, String separator, T... elements) {
        for (int i = 0; i < elements.length; i++) {
            if (i > 0) {
                out.print(separator);
            }
            out.print(elements[i]);
        }
    }

示例用法:

String[] s = {"A", "B", "C", "D", "E"};
Integer[] n = {1, 2, 3, 4, 5}; //non-primitive
print(System.out, " ", s);
print(System.out, ", ", n);