簡體   English   中英

如何使用c#將一個字符更改為字符串中的前一個字符(按字母順序)?

[英]how to change a char to the previous one of it (alphabetically) in string using c#?

您好,我正在尋找一種將字符串中的單個char更改為以前的char的好方法。 我的意思是,如果我有此字符串=“ abcd”,我想將'd'char更改為'c'嗎? 如何將字符更改為之前的字符(按字母順序)?

我想在這里使用該方法:

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

我想將char的[StringSize-1]更改為其以前的char。

我嘗試根據字符的ASCII碼執行此操作,但是我沒有找到將char格式轉換為ASCII的方法。

char已經是ASCII,但是要對其進行數學運算,您需要一個數字。

所以:

  1. 轉換為int
  2. 做你的數學(減法1)
  3. 投射回char

     char newChar = (char)((int)oldChar - 1); 

或在您的代碼中:

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

注意事項:

  • 這不適用於'a'或'A'
  • 字符串是不可變的,您不能只更改字符。 您可以使用替換的字符創建新的字符串,但是從技術上講這不是同一回事。

將返回字符串替換為對象,但不更改其值。 解決方案是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM