【问题标题】:Android: Convert Text Input to ASCII and print it as a stringAndroid:将文本输入转换为 ASCII 并将其打印为字符串
【发布时间】:2015-07-06 02:54:52
【问题描述】:

这是我的代码

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

我从用户那里获取输入并将其存储在字符串 textInput 中。 现在,如何将字符串 textInput 转换为我想使用 textView textOut 打印的 ASCII 值字符串。

例如,

Input = "abcd"
Output = 979899100

【问题讨论】:

  • 查看 String.getBytes(Charset) 以获取字节 - 但您随后需要将字节转换回字符串...
  • 我试了一下。对于打印,我使用.toString() 将其转换回字符串,它给出的输出与输入相同。
  • 听起来你在错误的事情上调用了toString - 如果你在byte[] 上调用它,你会得到[B@abcdef10 或类似的输出。但这将是一个开始。请展示您的尝试。

标签: java android converter


【解决方案1】:
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) 转换为 Dec (979899100),但如果我想将字符串 (abcd) 转换为十六进制 (61626364),您会怎么做?
【解决方案2】:

例如,您可以通过将 char 转换为 int 来将字符转换为 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() 更好。

【讨论】:

    【解决方案3】:

    循环进入字符串并将每个字符转换为 Character.toString ((char) i),将结果存储在数组中并打印为字符串。

    【讨论】:

      【解决方案4】:
         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());
      

      【讨论】:

        猜你喜欢
        • 2013-01-18
        • 2017-04-14
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        相关资源
        最近更新 更多