2016-04-02 55 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