当前位置:编程学习 > C#/ASP.NET >>

如何查找stringbuilder内的字符串,既然能replace,谢谢

既然能replace,想来应该能查找吧,不做.ToString查找,这样就没意义了 --------------------编程问答-------------------- 楼主说得是,可.NET目前没提供这个方法。 --------------------编程问答-------------------- 嗯,确实啊,Find应该是很容易的一件事情吧,也许设计者是出于这么的考虑呢。

StringBuilder是字符串计算的中间状态,可能不需要Find什么。。。 --------------------编程问答-------------------- StringBuilder 从类型名称上可以看到,它本身不是字符串,侧重于String的生成,优化了字符的拼接合成性能。 --------------------编程问答-------------------- 术业有专攻.
正确的工具做正确的事情吧.
StringBuilder本身就是一个高效的操作字符串的对象.无法继承该类
(连继承重写的机会都没有,呵呵,如果可以的话倒是可以重写实现楼主的Find功能)
MSDN:This class represents a string-like object whose value is a mutable sequence of characters.

引用楼主 dfej34 的回复:
既然能replace,想来应该能查找吧,不做.ToString查找,这样就没意义了
--------------------编程问答-------------------- 在net3.0以上可以试试下面的


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 WindowsFormsApplication9
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder("abcsdfwefsd");
            string f="wef";
            
            int ret=sb.IndexOf(f);

            this.Text = ret.ToString();
        }
    }


    public static class myclass
    {
        public static int IndexOf(this StringBuilder sbr, string value)
        {
            int ret = -1;
            for (int i = 0; i < sbr.Length; i++)
            {
                if (sbr[i] == value[0])
                {
                    int k = 1;
                    for (int j = 1; j < value.Length; j++)
                    {
                        if (sbr[i + j] == value[j])
                            k++;
                        else
                            break;
                    }
                    if (value.Length == k)
                        ret = i;
                    else
                        ret = -1;
                }
            }
            return ret;
        }
    }
}
http://www.mybuffet.net
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,