将ASCII字符串转换为相应的句子并返回

时间:2017-05-15 18:56:37

标签: java ascii

我正在尝试将一串ASCII数字转换为相应的字符串值。

例如,如何将'This is good'之类的字符串转换为ASCII数字字符串或将字符串84114117116104326510811997121115328710511011532转换为相应的句子?

3 个答案:

答案 0 :(得分:1)

84114117116104326510811997121115328710511011532 无法转换,因为: 怎么读? 8和41或84和1?你需要分隔符。 你必须使用charAt():

String s="This is good";
String ascii="";
String separator=":";
for (int i=0; i < s.length; i++) {
     int c=s.charAt(i);
     ascii+=Integer.toString(c);
     if (i < s.length-1) {
         ascii+=separator;
     }
}
//Converting it back : 
String[] characters=ascii.split(separator);
String converted_back="";
for (String string:characters) {
     converted_back+=new String(new char[]{(char)Integer.parseInt(string)});
}

随意提出任何问题。希望它可以帮到你。

答案 1 :(得分:1)

从String到int,您可以轻松使用:

String str = "This is good";
String number = "";
for (char c : str.toCharArray()) {
    number += (int) c;
}

但是从intString这是不可能的,因为你没有任何逻辑来剪切字符串来获取对应值,例如:

  

84114这可以是 - &gt;可以是Th T(84)和h(114)或TVT T(84)+ VT(11)和4()为空。

http://onlinecalculators.brainmeasures.com/Conversions/StringtoAsciiCalculator.aspx

Source

答案 2 :(得分:0)

试试这个

   string  encode="84114117116104326510811997121115328710511011532";
        string str = encode;
        int l=0;
        l=str.length();

        string decode1="";
        //l--;

        int i=0
        char c;
        while(i<=l){

            c=str[i];

            if( c=='3'||c=='4'||c=='5'||c=='6'||c=='7'||c=='8'||c=='9'){
                    i++;
                char c1=str[i];
                string y;
                y.push_back(c);
                y.push_back(c1);
                int num=stoi(y);

                char c3=num;

                decode1.push_back(c3);

                i++;

            }

            if(c=='1'){
               i++;
                char c1=str[i];
                i++;
                char c2=str[i];
                string y;
                y.push_back(c);
                y.push_back(c1);
                y.push_back(c2);
                int num=stoi(y);
                char c3=num;
                decode1.push_back(c3);

               i--;


            }
            cout<<decode1;
    }