C# 字符串大小寫混合轉換(同時進行)

通常的大小寫轉換比較經常使用String自帶的方法。ToUpper()|ToLower()。有一種特殊狀況下,就是給你個字符串。如String="aSd$";要求a~A 、S~s、d~D、$符號不變。數組

查閱了資料,別人說有三種方式。我只找到了兩種。ui

  • 一:預約義大小寫字符數組

(1):預約義字符串存儲26個字母的大小寫。順序對應儘可能一致spa

 private static char[] up = { 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M' };
 private static char[] lower = { 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm' };

(2):寫方法來逐一判斷每個字符串中的元素.net

public static string GetResult(string str)
{
    StringBuilder sb=new StringBuilder();//用於存儲改變後的字符串  StringBuilder具備高效性
    for(int i=0;i<str.Length;i++)
    {
       int bol=Array.Indexof(up,str[i]);//檢查str中第一個元素是不是大寫。這裏也能夠本身先判斷是否爲小寫。
        if(bol==-1)//兩種狀況 1:小寫元素  2:其餘元素
        {
          int bol2=Array.IndexOf(lower,str[i]);//此時檢查是否爲小寫
            if(bol2==-1)//說明是其餘元素
            {
              sb.Append(str[i]);//原封不動的添加便可
              continue;//而後開始下一個元素的匹配
            }    
            else//是小寫元素  那麼久添加對應的大寫元素
            {
             sb.Append(up[bol2]);
            }
        } 
        else //存在與之對應的大寫元素  添加爲小寫元素
        {
         sb.Append(lower[bol]);
        }   
    }
  return sb.ToString();
}
        

爲了加深印象。手打的code

以後在調用這個方法就能夠了。blog

  • 二:利用Ascall碼來比較

  

            string str = "aSd$";
            //轉換爲數組  才能夠進行修改
            char[] c = str.ToCharArray();
            //存儲轉化以後的字符
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < str.Length; i++)
            {
                //利用ascall
                if (c[i] >= 'a' && c[i] <= 'z')//判斷是否爲小寫
                {
                    c[i] = (char)(c[i] - 32);//是的話  就轉變爲大寫
                }
                else if (c[i] >= 'A' && c[i] <= 'Z')
                {
                    c[i] = (char)(c[i] + 32);
                }
                else
                {
                    c[i] = c[i];//其餘元素  不改變
                }
                sb.Append(c[i]);//添加元素
            }
            Console.WriteLine(str);

 Console.WriteLine(sb.ToString());

              Console.ReadKey();字符串

 

大小寫相差32 能夠看看這個鏈接。get

https://blog.csdn.net/u011930916/article/details/79623922string

相關文章
相關標籤/搜索