2012-04-07 30 views
15

我想知道是否有人知道如何在每個字符處查看字符串,然後將每個字符添加到新字符串中?只是一個非常基本的例子,我可以添加ToUpperToLower驗證等。看看字符串中的每個字符

+0

我相信你只是在你的問題的機制,可能不是輸出,但由於字符串是不可變的,你的輸出是簡單的賦值:'string source =「foo」 ; string copy = source;' – Marc 2012-04-07 22:29:43

回答

46
string foo = "hello world", bar = string.Empty; 

foreach(char c in foo){ 
    bar += c; 
} 

使用StringBuilder

string foo = "hello world"; 
StringBuilder bar = new StringBuilder(); 

foreach (char c in foo) 
{ 
    bar.Append(c); 
} 

下面是Stringclass的簽名:

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class String : IComparable, 
    ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, 
    IEnumerable, IEquatable<string> 

http://msdn.microsoft.com/en-us/library/system.string(v=vs.100).aspx

+0

請記住,你不想用大字符串做這個,因爲性能會很糟糕。 – ChaosPandion 2012-04-07 22:27:57

+0

@ChaosPandion同意,'StringBuilder'非常適合大量的連接... – xandercoded 2012-04-07 22:29:12

+0

或更好的使用數組(如果你需要搜索,你可以前後檢查)IndexOf,如果你知道最終的字符串構造函數數組大小... – NSGaga 2012-04-07 22:43:22

4
var output = ""; // or use StringBuilder 
foreach(char c in text) 
{ 
    output += c; // if or do with c what you need 
} 

......這就是你需要的嗎?
字符串是IEnumerable<char>

相關問題