代码之家  ›  专栏  ›  技术社区  ›  Syaiful Nizam Yahya

C中的简单编辑字符串#

  •  1
  • Syaiful Nizam Yahya  · 技术社区  · 14 年前

    我有两条线,A和B。A含有“你好,你好”。B包含“宾果”。我想用“bingohowareYou”的字符串B替换字符串A。有什么建议吗?即使是关键字也足够了。

    我知道这是个新手,但我不想为了找到这些简单的东西而搜遍所有的msdn文档。如我所说,一个指向正确方向的简单指南/关键字就足够了。

    编辑:

    假设我不知道字符串的内容。我可以换一下吗?感谢您的快速回复。

    7 回复  |  直到 14 年前
        1
  •  6
  •   Jon Skeet    14 年前

    幸运的是,你不需要追捕 全部的 msdn的…只是 the String class .

    正如其他人所说, String.Replace(string, string) 可能是你想要的:

    string a = "HelloHowAreYou";
    string b = "Bingo";
    string c = a.Replace("Hello", b); // Now the value of c is "BingoHowAreYou"
    

    或者,如果您试图替换 a 中的字符数相同 b ,类似这样的方法可以代替,使用 Substring 和字符串连接:

    string c = b.Length >= a.Length ? b : b + a.Substring(b.Length);
    

    (具体取决于你想在什么时候做什么 当然。)

    但有几件事值得了解:

    • 这是一个很好的例子 图书馆 功能性-所以你找不到它的C关键字。而一些c关键词 与图书馆互动(例如 using 了解 IDisposable 类型)大多数情况下,如果您对听起来像库功能的内容感兴趣,则应该在库文档中查找,而不是查找关键字。
    • 字符串是 不变的 : String.Replace 不更改现有字符串-它返回 新的 具有适当结果的字符串。其他一些类型遵循相同的模式-尤其是值类型,例如 DateTime 通常是不可变的,所以 DateTime.AddDays 不更改现有值,但返回新值。
    • 有必要习惯于浏览msdn。你很可能会这样做 许多 ,所以现在查看一下字符串类是很好的实践。
        2
  •  3
  •   Przemysław Michalski    14 年前
    string C = A.Replace("Hello", "Bingo");
    
        3
  •  3
  •   Jesper Fyhr Knudsen    14 年前
    string a = "HelloHowAreYou";
    string b = "Bingo";
    
    string result = a.Replace( "Hello", b );
    

    这应该如您所描述的那样,它将返回一个带有“bingohowareu”的新字符串。

    MSDN article on Replace

        4
  •  2
  •   Adriaan Stander    14 年前
        5
  •  2
  •   Doc Brown    14 年前
     A=A.Replace("Hello",B)
    
        6
  •  2
  •   Adam Ralph    14 年前
    var a = "HelloHowAreYou";
    var b = "Bingo";
    var c = a.Replace("Hello", b);
    
        7
  •  2
  •   hwcverwe    14 年前
    string a = "HelloHowAreYou";
    string b = "Bingo"
    a = a.Replace("Hello", b); // will replace a to "BingoHowAreYou"