2016-04-02 6 views
-4

Я решился создать метод преобразования массива в int без использования встроенной библиотеки 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)); 

    } 
} 

Я застрял в том, что должно быть условие возврата. это часть задания, где это не обязательно, но если я могу придумать свой собственный метод для упрощения, я без колебаний буду его использовать, так как мне нужно несколько раз печатать массив. Я знаю, что это, наверное, немой вопрос, но условие Return должно быть типа строки, и я не знаю, как это сделать. спасибо

+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

методы, использующие длину и 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

Смежные вопросы