Задача моего метода- преобразовать каждое число типа StringBuffer в массив int.
При попытке преобразовать каждый символ "9 8 7 6 5 4 3 2 1 " с убранными пробелами я получаю результат: {57,56,55,54,53,52,51,50,49}
Как мне поместить в массив те же числа, что и в строке?
public static void main(String[] args){
StringBuffer strB = new StringBuffer("9 8 7 6 5 4 3 2 1 ");
int arrInt=strBToArrInt(strB);
for(int i=0;i
return arrInt;
}//end strBToArrInt
Ответ
В твоём случае он возвращает ASCI-код символа. Тебе надо использовать метод digit. Замени
arrInt[i]= Integer.valueOf(strBuff.charAt(0));
На
arrInt[i]= Character.digit(strBuff.charAt(0), 10);
Но этот метод годен только для цифр. Если у тебя числа, то сначала надо разбить исходную строку на массив строк при помощи метода split
String []stringsArray=strBuff.toString().trim().split("\\s+");
А потом пройтись и распарсить каждую строку как число
int[] arrInt =new int[stringsArray.length()];
for (int i = 0; i < stringsArray.length; i++) {
arrInt[i]= Integer.parseInt(stringsArray[i]);
}
Комментариев нет:
Отправить комментарий