我有一个包含 k 个元素的字符串数组。我想使用 System.out.format 将它们打印出来,但问题是我不知道 k。所以本质上,我想使用类似的东西:(
System.out.format("%s %s ... k times", str1, str2, ... strk);
其中 k 是一个变量)
我正在查看 java 文档,但找不到执行此操作的方法。有没有简单的出路?
谢谢!
我有一个包含 k 个元素的字符串数组。我想使用 System.out.format 将它们打印出来,但问题是我不知道 k。所以本质上,我想使用类似的东西:(
System.out.format("%s %s ... k times", str1, str2, ... strk);
其中 k 是一个变量)
我正在查看 java 文档,但找不到执行此操作的方法。有没有简单的出路?
谢谢!
您可以使用
System.out.format("%s". Arrays.toString(your_array));
爪哇 8:
String formatted = Stream.of(arrayOfStrings)
.collect(Collectors.joining(",","[","]"));
String formatted = Stream.of(arrayOfSomethingElse)
.map(Object::toString)
.collect(Collectors.joining(",","[","]"));
使用循环:
for (String s : array) {
System.out.print(String.format("%s ", s));
}
System.out.println();
for(int i = 0; i < array.length; i++) {
System.out.print("%s ", array[i]);
}
尝试:
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
您是否只想将k个字符串与每个字符串之间的空格连接起来?你不需要System.out.format
那个。您可以简单地创建一个循环以将它们与 a 连接在一起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();
}
我想为每个字符串指定我想要的字符数。类似 %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();
}
这是典型的工具箱代码- 您经常使用和重用的代码,最好保留在静态访问实用程序类(例如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);