2016-04-02 56 views
-4

我敢於創建一個將數組轉換爲int的方法,而不使用Array中的arrays.toString()內置庫。這裏是我有什麼:將數組轉換爲字符串的構建方法

import java.util.Arrays; 
public class P01ArrayIntsInit { 

    String arrayToString(int[] array){ 
     int[] n = new int[]{10,16,181,200,410,68,31,555,161,313}; 
     //System.out.println(Arrays.toString(n)); 

    } 
} 

我被困在什麼樣的退貨條件應該是.suggestions?這是一個不必要的任務的一部分,但如果我可以想出自己的方法來簡化事情,我會毫不猶豫地使用它,因爲我需要多次打印數組。我知道這可能是一個愚蠢的問題,但返回條件必須是字符串類型,並且我不知道該如何表達。 謝謝

+0

將數組到' int'還是一個String? –

+0

你能舉一個返回的字符串應該是什麼樣子的例子嗎? – elhefe

+0

您已經在方法聲明中將返回類型設置爲'String':'String arrayToString(int [] array)'。現在實際上'返回'方法體中的字符串。 –

回答

0

有實現Arrays::toString的方法很多,這裏有幾個例子:

import java.util.Arrays; 
import java.util.StringJoiner; 
import java.util.stream.Collectors; 

public class ArraysToString { 
    public static void main(String[] args) { 
     int[] array = {10, 16, 181, 200, 410, 68, 31, 555, 161, 313}; 

     System.out.println(Arrays.toString(array)); 
     System.out.println(arrayToString1(array)); 
     System.out.println(arrayToString2(array)); 
     System.out.println(arrayToString3(array)); 
     System.out.println(arrayToString4(array)); 
     // [10, 16, 181, 200, 410, 68, 31, 555, 161, 313] 
     // [10, 16, 181, 200, 410, 68, 31, 555, 161, 313] 
     // [10, 16, 181, 200, 410, 68, 31, 555, 161, 313] 
     // [10, 16, 181, 200, 410, 68, 31, 555, 161, 313] 
     // [10, 16, 181, 200, 410, 68, 31, 555, 161, 313] 
    } 


    static String arrayToString1(int[] array) { 
     StringJoiner stringJoiner = new StringJoiner(", ", "[", "]"); 
     for (int i : array) { 
      stringJoiner.add(Integer.toString(i)); 
     } 
     return stringJoiner.toString(); 
    } 

    static String arrayToString2(int[] array) { 
     return Arrays.stream(array) 
       .mapToObj(Integer::toString) 
       .collect(Collectors.joining(", ", "[", "]")); 

    } 

    static String arrayToString3(int[] array) { 
     StringBuilder sb = new StringBuilder("["); 
     String separator = ""; 
     for (int i : array) { 
      sb.append(separator); 
      sb.append(Integer.toString(i)); 
      separator = ", "; 
     } 
     sb.append("]"); 
     return sb.toString(); 
    } 

    static String arrayToString4(int[] array) { 
     String result = "["; 
     for (int i = 0; i < array.length; i++) { 
      result += array[i]; 
      if (i < array.length - 1) { 
       result += ", "; 
      } 
     } 
     return result + "]"; 
    } 
} 
+0

使用length和stringBuilder的方法證明是我正在尋找的。非常感謝你! – TwistedMaze

1

您可以編寫自己的toString方法,如:

public String toString(int[] array){ 
StringBuilder builder = new StringBuilder(); 
builder.append("["); 
for(int element : array){ 
    builder.append(element + ","); 
} 
builder.replace(builder.lastIndexOf(","), builder.length(), ""); //remove last comma 
builder.append("]"); 
return builder.toString(); 
} 
+0

@Downvoter謹慎解釋? –

+0

這是一個正確的答案。不知道爲什麼你被低估了。 – f1sh