#java #кодировка #char
Задача моего метода- преобразовать каждое число типа 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Ответы
Ответ 1
В твоём случае он возвращает 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]); }Ответ 2
Конвертируйте строку в массив символов: char[] = String.toCharArray(); Используйте int[i] = Character.getNumericValue(char[i]);. Конечно, в вашем случае используйте charAt();, при чем в одной строке можно конвертировать к int.
Комментариев нет:
Отправить комментарий