C#下string.Remove和Replace()无效

迷路的指南针 2013-03-08 11:11:47
小菜今天自学C#然后对一个string类型的对象操作,一开始想删除开头的字母,然后将字符串中的某个字母替换掉,可是试过没有用,本菜初学,求大神指教,感激不尽。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tesing
{
class Program
{
static void Main(string[] args)
{
string test = "He+llo world!)";
string u;
u = test.Substring(0, 1);
test.Remove(1);
Console.WriteLine("剪切下来的字符串为{0},Test字符串的大小为{1}",u,test.Length);
int Cout;
char[] Signe = new char[] { '(', ')', '+', '-', '*', '/' };
test.Replace("!", "#");
Console.WriteLine("执行完Replace函数后的test:{0},它的长度{1}", test, test.Length);
Cout = test.IndexOfAny(Signe,0);
Console.WriteLine(Cout);
Console.ReadLine();
}
}
}

程序的运行结果是
...全文
992 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
豁燃开朗 2013-03-08
  • 打赏
  • 举报
回复
string是固定长度的,每次修改都要重新分配长度返回新实例的,原对象是不会修改,所以

string str1 = "abc";
string str2 = str1.Remove(1);//即str1="abc",str2="a";

string str="abcdefg";

str=str.remove(1);//返回新实例的,重新赋值
str=str.Replace("a","b");//返回新实例的,重新赋值
str=str.Trim();//所有方法都要重新赋值
leafmao 2013-03-08
  • 打赏
  • 举报
回复
String.Sub和String.Replace方法都不修改当前实例,只会返回一个新的字符串 test.Remove(1);改成test=text.Remove(1); test.Replace("!", "#");改成test=test.Replace("!", "#");
phommy 2013-03-08
  • 打赏
  • 举报
回复
test.Remove(1); => test = test.Remove(1); c#的系统类里,有些类的操作不改变自身,需要重新赋值,比如string,int 另一些是直接改变自身的,比如StringBuilder,List,不需要写成 l=l.Remove() 这些需要记住 当然你写int i = 0; i+1; 会直接编译错误。但你的test.Remove(1)连个警告都没有让我对编译器非常不爽
  • 打赏
  • 举报
回复
你接把水煮完之后,要重新放回到容器中。 test = test.Remove(1);
bdmh 2013-03-08
  • 打赏
  • 举报
回复
test = test.Remove(1);
迷路的指南针 2013-03-08
  • 打赏
  • 举报
回复
而外将程序的截图附上:
迷路的指南针 2013-03-08
  • 打赏
  • 举报
回复
感谢各位大神,按照你们的指点,搞好了。虽然大家都是正确答案,但是,我把分给了第1个找到错误和解释清楚的人,因为分数有限,所以只能这样分配,但是我对每位大神指点都是感激万分。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧