2013-08-20 48 views
0

我有一個有k個元素的字符串數組。我想用System.out.format打印出來,但問題是我不知道k。所以基本上,我想用這樣的: System.out.format("%s %s ... k times", str1, str2, ... strk); (其中k是一個變量)在java中格式化字符串數組

我一直在尋找通過Java文檔,但無法找到一個方法來做到這一點。有一個簡單的出路嗎?

謝謝!

+3

也許'Arrays.toString()'可能是你在找什麼。 –

+0

不是,重點是我想指定每個字符串所需的字符數。像%15s – ashu

+1

@ashu:你的解釋對我來說沒有多大意義。你可以編輯你的文章給一個例子數組+輸出? –

回答

0

使用一個循環:

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

你會說'array [i]'。我也會建議使用'array.length'而不是'k' – dic19

+0

我一起鞭打那太快,謝謝指出。 – Tricky12

+0

你很好。 – dic19

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 
23

可以使用

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

你只是想連接ķ字符串用空格之間字符串?你不需要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(); 
} 
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(); 
} 
-1
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]); 
    } 


} 
+0

這既不編譯也不解決OP的問題。 –

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); 
1

的Java 8 :

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

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