【发布时间】:2011-11-25 19:44:31
【问题描述】:
我正在尝试将一串字符转换为每个字符的十进制形式,并用随机选择的符号分隔它们,然后在转换之后,将十进制数字与字符串分开,然后将 1 添加到这些数字和然后将它们转换回 ASCII 字符。到目前为止,这是我所拥有的,但它一直用“int.Parse”说无效的输入格式:
public string Encode(string data, out string asciiString) {
char[] dataArray = data.ToCharArray();
string[] symb = {"@","#","$","%","&"};
Random rnd = new Random();
string newData = "";
for(int i = 0; i < dataArray.Length; i++) {
newData += (((int)dataArray[i] + 1) + symb[rnd.Next(0, 5)].ToString()); // add 1 to the decimal and then add symbol
}
asciiString = ConvertToAscii(newData);
return newData;
}
public string ConvertToAscii(string data) {
string[] tokens = data.Split('@', '#', '$', '%', '&');
data = data.TrimEnd('@', '#', '$', '%', '&');
string returnString = "";
for(int i = 0; i < tokens.Length; i++){
int num = int.Parse(tokens[i]);
returnString += (char)num;
}
return returnString;
}
这是一个例子:
正常:“你好” 用符号转换成十进制:72$101&108#108@111% 转换为 ascii(不带符号并加 1):Ifmmp(我必须使用 ascii 表)
【问题讨论】:
-
你能给我们举个例子吗?
-
什么是
tokens[i]当它咳出错误? -
"Hello" 用符号转换成十进制:72$101&108#108@111% 转换成ascii(带分隔符和加1):Ifmmp
-
一定是作业问题:-)