输入字符串并转换为ASCII

时间:2019-01-21 09:41:29

标签: java ascii

我的问题是,当我输入“ b”时,它可以正确转换,但是当我输入其他字母时,它仅显示“ b”的转换。

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

2 个答案:

答案 0 :(得分:0)

这是因为您只将字符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的框架将提供一个更优雅的解决方案,但这将起作用。

答案 1 :(得分:0)

您设置ch ='b'。因此,总是转换“ 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);
    }

您可以在字符串s旁编写scanner.nextline()而不是“ hello”,以从用户那里获取字符串。