我正在尝试将一串ASCII数字转换为相应的字符串值。
例如,如何将'This is good'
之类的字符串转换为ASCII数字字符串或将字符串84114117116104326510811997121115328710511011532
转换为相应的句子?
答案 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;
}
但是从int
到String
这是不可能的,因为你没有任何逻辑来剪切字符串来获取对应值,例如:
84114
这可以是 - &gt;可以是Th T(84)和h(114)或TVT
T(84)+ VT(11)和4()为空。
答案 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;
}