#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.
Комментариев нет:
Отправить комментарий