• C# 字符串大写转小写,小写转大写,数字保留,其他除外


    又是一道面试题,我只想到两种方式:

    第一种:循环字符串,判断每个字符串的类型,再根据类型对该字符进行操作(转大写、转小写、不变或舍弃)

    static void Main(string[] args)
    {
        //大写转小写,小写转大写,数字保留,其他除外
        string str = "Aa Bb 123!@#";     //测试字符串
        string newStr = string.Empty;    //用于存放新字符串
        
        //循环字符串
        foreach (char item in str)
        {
            if (item >= 'a' && item <= 'z')
            {
                //小写字母转大写
                newStr += item.ToString().ToUpper();
            }
            else if (item >= 'A' && item <= 'Z')
            {
                //大写字母转小写
                newStr += item.ToString().ToLower();
            }
            else if (item >= '0' && item <= '9')
            {
                //数字不变
                newStr += item.ToString();
            }
        }
        //打印
        System.Console.WriteLine(newStr);
        System.Console.ReadLine();
    }
    

    第二种:将字符串转为byte[],循环byte[],使用ASCII码进行判断

    static void Main(string[] args)
    {
        //大写转小写,小写转大写,数字保留,其他除外
        string str = "Aa Bb 123!@#";     //测试字符串
        string newStr = string.Empty;    //用于存放新字符串
    
        //字符串-->byte[] 
        ASCIIEncoding ascii = new ASCIIEncoding();
        byte[] bytes = ascii.GetBytes(str);
    
        //循环byte[] 
        foreach (byte item in bytes)
        {
            //临时存放
            byte[] temp = new byte[] { item };
    
            if (item >= 97 && item <= 122)
            {
                //小写字母转大写
                newStr += ascii.GetString(temp).ToUpper();
            }
            else if (item >= 65 && item <= 90)
            {
                //大写字母转小写
                newStr += ascii.GetString(temp).ToLower();
            }
            else if (item >= 48 && item <= 57)
            {
                //数字不变
                newStr += ascii.GetString(temp);
            }
        }
        //打印
        System.Console.WriteLine(newStr);
        System.Console.ReadLine();
    }
    

    备注:数字,字母的ASCII码对照表

    /*
    0~9数字对应十进制48-57
    a~z字母对应的十进制97-122十六进制61-7A
    A~Z字母对应的十进制65-90十六进制41-5A
    */
    

    结果打印:

  • 相关阅读:
    使用 Docker 部署 Spring Boot
    阿里云Redis开发规范
    Java开发包Jedis
    Jedis的配置和优化
    JVM调优前戏之JDK命令行工具---jhat
    JVM调优前戏之JDK命令行工具---jstack
    JVM调优之经验
    Logback配置文件这么写,TPS提高10倍
    Java开发包Jedis
    Error Handling in ASP.NET Core
  • 原文地址:https://www.cnblogs.com/bookobe/p/9163954.html
Copyright © 2020-2023  润新知