c# 将字符串转换为大写或小写

字符串大小写转换
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 将字符串转换为大写小写
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = "输入字符串";
            label2.Text = "转换后的字符串";
            button1.Text = "确认转换";
            radioButton1.Text = "大写";
            radioButton2.Text = "小写";
            radioButton1.Checked = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == " ")            //判断文本框是否为空
            {
                MessageBox.Show("请输入字符串");
            }
            if(radioButton1.Checked==true)        
            {
                textBox2.Text = textBox1.Text.ToUpper();            //ToUpper()方法将小写字母转换成大写字母
            }
            else 
            {
                textBox2.Text = textBox1.Text.ToLower();           //ToUpper()方法将大写字母转换成小写字母
            }
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)        //用到了textbox的keypress事件,用来判断输入的是否为想要的字母,如果不是,将禁止输入
        {
            if ((e.KeyChar >= '1' && e.KeyChar <= '9' )||( e.KeyChar >= 'a' && e.KeyChar <= 'z' )|| (e.KeyChar >= 'A' && e.KeyChar <= 'Z'))
            {
                e.Handled = false;        //e.handled=false表示没有处理过,同意输入
            }
            else
            {
                e.Handled = true;        //e.handled=false表示处理过了,禁止输入
            }
        }
    }
}

运行结果

<think>嗯,用户问的是如何在C#中实现字符串小写转换,特别是切换大小写,也就是把大写小写小写大写。我需要先回忆一下C#中的字符串处理方法。 首先,C#里每个字符都有ToUpper()和ToLower()方法,可以将单个字符转换。但整个字符串的话,可能需要遍历每个字符,逐个判断然后转换。比如,如果是大写字母小写,否则保持原样大写。不过这样可能需要自己写循环处理每个字符。 然后,有没有更简便的方法呢?比如使用内置的方法者LINQ。比如,可以用LINQ的Select方法,对每个字符进行处理,然后组合成新的字符串。例如,string.Concat(input.Select(c => char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c)))。这可能是一个简洁的方式。 另外,用户提到“toggle case”,也就是切换大小写,可能需要处理每个字符的大小写。这时候需要注意一些特殊字符,比如数字符号,它们可能不需要转换,但char.IsUpper和ToLower应该能处理这种情况,因为它们会检查是否是字母。 然后,可能需要考虑性能问题。如果字符串很长,使用LINQ会不会有效率问题?不过对于一般情况来说,LINQ足够用了,而且代码简洁。如果用户需要高性能,可能需要用循环者StringBuilder来优化,但通常情况应该没问题。 还要注意,用户可能需要处理不同文化区域的大小写转换,比如使用CultureInfo.InvariantCulture来确保转换的一致性,特别是在不同的系统区域设置下。不过如果用户没有特别说明,可能默认使用当前文化设置,但最好在示例中提到这一点,者提供一个使用InvariantCulture的例子。 另外,用户可能还想知道如何只转换字母者其他的转换方式,比如全部大写小写。但根据问题描述,用户主要关心的是切换大小写,所以应该集中在反每个字符的大小写上。 最后,检查一下示例代码是否正确。比如,用LINQ的Select方法,每个字符检查是否是大写,如果是就小写,否则大写。然后使用string.Concat来组合成新的字符串。测试一下比如输入“Hello World!”应该变成“hELLO wORLD!”,这样代码是否正确。 总结步骤:遍历每个字符,判断大小写转换,组合成新字符串。给出两种方法,一种是LINQ,另一种是循环处理。可能需要提到这两种方法的优缺点,比如LINQ简洁,循环可能更高效但代码稍长。 另外,考虑用户可能的后续问题,比如如何处理非字母字符,者性能优化的方法,所以在相关问题里可以包括这些。</think>在C#中实现字符串小写切换可以通过字符遍历和条件判断实现。以下是两种常用方法: ### 方法一:使用LINQ和char方法 ```csharp string ToggleCase(string input) { return string.Concat(input.Select(c => char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c) )); } ``` ### 方法二:手动字符遍历 ```csharp string ToggleCase(string input) { char[] arr = input.ToCharArray(); for (int i = 0; i < arr.Length; i++) { if (char.IsUpper(arr[i])) arr[i] = char.ToLower(arr[i]); else arr[i] = char.ToUpper(arr[i]); } return new string(arr); } ``` 这两种方法都会将字符串中的大写字母小写小写字母大写。例如: - 输入:`"Hello World!"` - 输出:`"hELLO wORLD!"` 注意:使用`char.ToLower()`和`char.ToUpper()`时默认使用当前区域性规则,如果需要固定规则,可指定区域性参数: ```csharp char.ToLower(c, CultureInfo.InvariantCulture) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值