Android:将文本输入转换为ASCII并将其作为字符串打印

3

这是我的代码

EditText textExtract = (EditText) findViewById(R.id.textInput);
    String textInput = textExtract.getText().toString();
    TextView textOut = (TextView) findViewById(R.id.textOutput);

我将从用户那里获取输入并将其存储在字符串textInput中。现在,我该如何将字符串textInput转换为ASCII值的字符串并使用textView textOut打印呢?
例如:
Input = "abcd"
Output = 979899100

查看String.getBytes(Charset)以获取字节 - 但是您随后需要将字节转换回字符串... - Jon Skeet
我尝试了一下。为了打印,我使用.toString()将其转换回字符串,并输出的结果与输入相同。 - Aakaash Jois
听起来你在错误的地方调用了 toString - 如果你在一个 byte[] 上调用它,你会得到一个类似 [B@abcdef10 的输出。但这只是一个开始。请展示一下你尝试过什么。 - Jon Skeet
4个回答

2
public static long toAscii(String s){
    StringBuilder sb = new StringBuilder();
    String ascString = null;
    long asciiInt;
    for (int i = 0; i < s.length(); i++){
        sb.append((int)s.charAt(i));
        char c = s.charAt(i);
    }
    ascString = sb.toString();
    asciiInt = Long.parseLong(ascString);
    return asciiInt;
}



String outputText = toAscii(textInput).toString();
textOut.setText(outputText);

这可能对您的情况有所帮助。

@GabriellaAngelova:你将字符串(abcd)转换为十进制(979899100),但如果我想将字符串(abcd)转换为十六进制(61626364),你会怎么做? - Antoine Murion

2
你可以通过将字符强制转换为整数来将字符转换为ascii码,例如:
char c = 'A';
int ascii = (int) c;

要将整个字符串转换,需要遍历所有字符的数组。您可以使用 "Hello".getCharArray(); 获取该数组。

代码示例:

String input = "Hello World";
StringBuilder sb = new StringBuilder();
char[] chars = input.toCharArray();
for(char c : chars) 
    sb.append((int) c);
String output = sb.toString();

这里使用 StringBuilder 把单个数字串联在一起,这比多次使用 .concat() 方法连接字符串要更好。


0
   String str = textView1.getText().toString();
    StringBuilder sb = new StringBuilder();
    for (char c : str.toCharArray())
        sb.append((int)c);
    BigInteger mInt = new BigInteger(sb.toString());
    textView2.setText(mInt.toString());

0
循环遍历字符串,对于每个字符将其转换为Character.toString((char) i),将结果存储在数组中,并将其作为字符串打印出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接