2015-01-28 4 views
0

Итак, я написал метод, который берет строку и преобразует каждую букву в цикл int via for. Каждый раз, когда цикл выполняется, я заставлял его распечатывать каждое значение и добавлять значение к массиву int. Значения букв должны быть от 0 до 25, поэтому у меня есть c-97. Операторы печати печатают правильный номер для каждой буквы, однако в конце я также распечатываю весь массив, и мне становится странно, что это печать. Я не думаю, что я правильно добавляю значение в массив, так что я делаю неправильно?Что случилось с моим массивом int?

public int[] stringToIntArray(String text){ 
    int ascii; 
    char c; 
    int a; 
    int[] array = new int[text.length()]; 
    for (int i=0; i<text.length(); i++){ 
     c = text.charAt(i); 
     a = c - 97; 
     array[i] = (a); 
      if (i != array.length - 1){ 
       System.out.print(a + ", "); 
      } else { 
       System.out.print(a + " "); 
      } 

    } 
    System.out.print(array); 
    return array; 
} 
+2

[Избегайте магических чисел] (http://stackoverflow.com/q/47882/1393766). Вместо '97' используйте' 'a'', он будет преобразован в 97 для вас, но ваш код будет более четким. – Pshemo

ответ

1

Вам необходимо использовать Arrays.toString(). В настоящее время вы печатаете адрес памяти.

System.out.println(Arrays.toString(array));