如何查找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.
--------------------编程问答-------------------- 在net3.0以上可以试试下面的
http://www.mybuffet.net
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;
}
}
}
补充:.NET技术 , C#