Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Как перевести char в int, без изменения кодировки. Работа с StringBuffer

#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.

Комментариев нет:

Отправить комментарий