示例: a = 1 b = 2 c = 3 .. .. z = 26 aa = 27 ab = 28
如何将另一个字符串转换为整数?例如,我想将'lmao'转换为整数。请帮帮我:)谢谢。 在帕斯卡:)
答案 0 :(得分:2)
要将普通的10字符串转换为数字,您可以从左到右取每个字符,将其转换为数字值(0到9之间)并将其添加到您已有的总数(初始化为零) 。如果您刚处理的字符后面有更多字符,则将总数乘以10.重复直到字符用完为止。
例如,数字374是3×10 2 + 7×10 1 + 4×10 0 。另一种写作方式,即更接近我上述转换算法的模型,是(((3)×10 + 7)×10 + 4.您可以调整它来处理任何字符串,而不仅仅是数字字符。基数是26而不是10,所以乘以它。而不是数字,字符是 a 到 z 。您的示例字符串将按如下方式进行评估:(( l )×26 + m )×26 + a )×26 + 0 。替换这些字母的数字,你得到219,742。
这是一些代码。它不会检查错误;它假定字符串只包含有效字符,并且该字符串不会表示太大而不适合Integer变量的数字。
function SpecialStrToInt(const s: string): Integer;
var
i: Integer;
subtotal: Integer;
c: Char;
charval: Integer;
begin
subtotal := 0;
for i := 1 to Length(s) do begin
c := s[i];
charval := Ord(c) - Ord('a') + 1;
subtotal := subtotal * 26;
subtotal := subtotal + charval;
end;
SpecialStrToInt := subtotal;
end;
您的格式奇怪的是无法表示零。