2015-09-09 3 views
1

Поэтому мне нужно напечатать массив целых чисел в строку, и я его почти сразу с одной проблемойПечать массива в методе Java

public static String arrayToString(int[] anArray) { 
    String x = ""; 
    String y = ""; 
    String result = ""; 
    for (int i = 0; i < anArray.length; i++) { 
     y = Integer.toString(anArray[i]); 
     x = x + ", " + y; 
    } 
    result = "[" + x + "]"; 
    return result; 
} 

public static void main(String[] args) { 
    int arrayInt[] = new int[] { 80, 100, 80, 92, 95, 87, 82, 76, 45, 76, 80, 70}; 
    System.out.println("array : " + arrayToString(arrayInt)); 
} 

Когда я выполнить код, вместо печати:

[80, 100, 80, 92, 95, 87, 82, 76, 45, 76, 80, 70]

я получаю:

[, 80, 100, 80, 92, 95, 87, 82, 76, 45, 76, 80, 70]

Это должно быть очень простой для меня, но я застрял, где делать Мне нужно удалить исключение?

+0

Arrays.toString? Или добавьте только при i> 0. –

+1

Опишите свою логику печати словами. Что происходит с первым элементом? –

+2

'Arrays.toString (arrayInt);' В чем проблема? – Andrew

ответ

-1

Пожалуйста, измените последнюю строку в коде переменную результат строки, как показано ниже:

public static String arrayToString(int[] anArray) { 
String x = ""; 
String y = ""; 
String result = ""; 
for (int i = 0; i < anArray.length; i++) { 
    y = Integer.toString(anArray[i]); 
    x = x + ", " + y; 
} 
result = "[" + x + "]"; 
return result.charAt(0)+result.substring(3); 
} 
+1

Спасибо! Я знал, что должен использовать java-метод, но не был уверен, как их выполнять –

0

Вы просто добавить дополнительный , в самом начале. Один простой способ избавиться от него есть,
Заменить

result = "[" + x + "]"; 

с

result = "[" + x.substring(1) + "]"; 

Но лучшим решением было бы использовать Arrays.toString. См. this для более подробной информации.

0

Проблема в том, что вы получаете дополнительную запятую , в начале. Это позволит решить вашу проблему в функции arrayToString:

public static String arrayToString(int[] anArray) { 
    String x = ""; 
    String y = ""; 
    String result = ""; 
    for (int i = 0; i < anArray.length-1; i++) { 
     y = Integer.toString(anArray[i]); 
     x = x + y + ","; 
    } 
    y = Integer.toString(anArray[anArray.length-1]); 
    x = x + y; 
    result = "[" + x + "]"; 
    return result; 
} 
0
public static String arrayToString(int[] anArray) { 
    String x = ""; 
    String y = ""; 
    String result = ""; 
    for (int i = 0; i < anArray.length; i++) { 
     y = Integer.toString(anArray[i]); 
     if(x.isEmpty()){ 
      x = y; 
     } else { 
      x = x + ", " + y; 
     } 
    } 
    result = "[" + x + "]"; 
    return result; 
} 

public static void main(String[] args) { 
    int arrayInt[] = new int[] { 80, 100, 80, 92, 95, 87, 82, 76, 45, 76, 80, 70 }; 
    System.out.println("array : " + arrayToString(arrayInt)); 
} 
0

Вы можете включать в себя проверку на первый элемент.

if(i == 0) x = y; else x = x + ", " + y;

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