C#中一些字符串的操作

本文介绍了一种反转字符串中单词的方法及实现整个字符串反转的多种方式。此外,还提供了查找字符串中出现次数最多的字符及其计数的算法,并展示了如何过滤字符串中的重复字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   /// <summary>
    
/// 反转一句话中的单词
    
/// </summary>
    
/// <param name="s">字符串</param>
    
/// <returns>反转后的字符串</returns>
    public string ReversalWord(string s)
    {
        
string[] sarray = s.Split(new char[] {' ',','});
       

        
//for (int i = 0; i <= (sarray.Length / 2 - 1); i++)
        
//{
        
//    tempstr = sarray[i];
        
//    sarray[i] = sarray[sarray.Length - 1 - i];
        
//    sarray[sarray.Length - 1 - i] = tempstr;
        
//}

        Array.Reverse(sarray);
       
   
        
return String.Join(" ", sarray);

      
    }


    
/// <summary>
    
/// 反转整个字符串
    
/// </summary>
    
/// <param name="s"></param>
    
/// <returns></returns>
    public string ReversalChar(string s)
    {
        
//方法1
        
//string[] newarray = new string[s.Length];
        
//for (int i = 0; i < (s.Length); i++)
        
//{
        
//    newarray[i] = s.Substring(i, 1);

        
//}
        
//Array.Reverse(newarray);
        
        
//return String.Join("", newarray);


       
//方法2
        char[] c = s.ToCharArray();
        
//for (int i = 0; i < c.Length/2-1; i++)
        
//{
        
//    char temc = c[i];
        
//    c[i] = c[c.Length - 1 - i];
        
//    c[c.Length - 1 - i]=temc;
        
//}
        Array.Reverse(c);
        
string s2 = new string(c);
        
return s2;

    }
    
protected void Button4_Click(object sender, EventArgs e)
    {
        
this.Label5.Text = ReversalWord(this.TextBox3.Text);
      
    }
    
protected void Button5_Click(object sender, EventArgs e)
    {
        
this.Label6.Text = ReversalChar(this.TextBox4.Text);
    }
    
protected void Button6_Click(object sender, EventArgs e)
    {
        
string maxchar;
        
this.Label7.Text = FindMaxChar(this.TextBox4.Text,out maxchar).ToString();
        
this.Label8.Text = test();
    }


    
/// <summary>
    
/// 找出一个字符串中重复字符的个数
    
/// </summary>
    
/// <param name="s"></param>
    
/// <returns></returns>
    public int FindMaxChar(string s,out string maxchar)
    {
        
char[] c = s.ToCharArray();
        
int maxcount = 0;
        
int maxindex = 0;
        
for (int i = 0; i < c.Length; i++)
        {
            
            
int count = 1;
            
            
for (int j = 0; j < c.Length;j++)
            {
                
if ((i!=j)&&(c[j]==c[i]))
                {
                    count
++;
                }
            }
            
if (count>maxcount)
            {
                maxcount 
= count;
                maxindex 
= i;
            }
            
        }
        maxchar 
= c[maxindex].ToString();


        
return maxcount;
        
    }


    
/// <summary>
    
/// 过滤数组中重复的数据,会区分大小写
    
/// </summary>
    
/// <param name="_StringArray"></param>
    
/// <returns></returns>
    public static string[] FilterRepeat(string[] _StringArray)
    {
        ArrayList _ArrayList 
= new ArrayList();
        
foreach (string _String in _StringArray)
        {
            
if (!_ArrayList.Contains(_String))
            {
                _ArrayList.Add(_String);
            }
        }
        
return (string[])_ArrayList.ToArray(typeof(string));
    }
    
/// <summary>
    
/// 过滤字符串中重复字符
    
/// </summary>
    
/// <returns></returns>
    private string test()
    {
        
string str1 = "1,2,2,3,1,4,5,3,2";
        
string str3 = "";
        
foreach (char ch in str1)
        {
            
if (ch == ',' || str3.IndexOf(ch) == -1)
                str3 
+= ch;
        }
        
return str3;
    }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值