如何使用c#将字符串中的字符串(字母顺序)更改为前一个字符串?

时间:2014-10-06 16:44:04

标签: c# string char ascii

您好我正在寻找一种将字符串中的单个字符更改为其前一个字符的好方法。我的意思是如果我有这个字符串=“abcd”我想把'd'字符改为'c'?如何将char更改为之前的字符(按字母顺序)?

我想在这里使用这种方法:

int StringSize=0; 
string s=" ";
s = Console.ReadLine();
StringSize = s.Length;
s.Replace(s[StringSize-1],the previous char);

我想将char [StringSize-1]更改为它的前一个字符。

我试图根据字符的ASCII代码执行此操作,但我找不到将表单字符转换为ASCII的方法。

3 个答案:

答案 0 :(得分:2)

char已经是ASCII,但要对它进行数学计算,你需要一个数字。

所以:

  1. 转为int
  2. 算一算(减去1)
  3. 回到char

    char newChar = (char)((int)oldChar - 1);
    
  4. 或者在您的代码中:

    s = s.Replace(s[StringSize-1], (char)((int)s[StringSize-1] - 1));
    

    注意事项:

    • 这不适用于'a'或'A'
    • 字符串不可变您不能只更改字符。您可以使用替换的字符创建 new 字符串,但这在技术上并不相同。

答案 1 :(得分:0)

将返回字符串替换为object,但不更改其值。解决方案:

s = s.Replace(s[StringSize-1], the previous char);

答案 2 :(得分:0)

    var str = "abcd";
    for (int i = 0; i < str.Length; i++)
    {
        str = str.Replace(str[i], (char)((byte)str[i] - 1));
    }