Ввод строки и преобразование в ASCII - PullRequest
0 голосов
/ 21 января 2019

Моя проблема в том, что, когда я ввожу "b", он конвертируется правильно, но когда я ввожу другие буквы, он просто отображает преобразование "b"

char ch = 'b';
int ascii = ch;
int castAscii = (int) ch;
DisplayText.setText(UserInput.getText() + " = " + castAscii); 

Ответы [ 2 ]

0 голосов
/ 21 января 2019

вы устанавливаете ch = 'b'.so всегда вы конвертируете "b" и игнорируете ввод.

Вы должны установить ch на то, что ввел пользователь.

Как я уже упоминал в комментариях, это пример кода для пояснения процесса.

    String s = "hello";
    char[] chars = s.toCharArray();
    for (int i = 0; i < chars.length; i++) {
        System.out.println(chars[i]);
        int ascii = (int) chars[i];
        System.out.println(ascii);
    }

вы можете написать scanner.nextline () вместо "hello" рядом со строкой s, чтобы получить строку от пользователя.

0 голосов
/ 21 января 2019

Это потому, что вы конвертируете только символ b в его значение ascii, а не в действительный пользовательский ввод. Предполагая, что UserInput.getText() возвращает пользовательский символ в виде символа, а не строки:

int castAscii = (int) UserInput.getText();
DisplayText.setText(UserInput.getText() + " = " + castAscii); 

В случае, если UserInput.getText() возвращает строку, вы можете преобразовать ее в массив символов и затем выполнить итерацию по ней, чтобы объединить вывод.

String userInput = UserInput.getText();
String output = userInput + "=";
for (int i = 0; i < userInput.length(); i++) {
    int castAscii = (int) userInput.toCharArray()[i];
    output  += castAscii;
    if (i < userInput.length()) {
        output += ",";
    } 
}
DisplayText.setText(output); 

Использование фреймворка, подобного apache commons-lang, позволило бы получить более элегантное решение, но это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...