【问题标题】:Look at each character in a string查看字符串中的每个字符
【发布时间】:2012-04-20 23:29:23
【问题描述】:

我想知道是否有人知道如何查看每个字符的字符串,然后将每个字符添加到新字符串中?只是一个非常基本的示例,我可以添加 ToUpperToLower 验证等。

【问题讨论】:

  • 我确定您只是关注问题的机制,可能不是输出,但由于字符串是不可变的,因此您的输出与赋值相同:string source = "foo"; string copy = source;

标签: c# string search character


【解决方案1】:
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

【讨论】:

  • 请记住,您不想对大字符串执行此操作,因为性能会很糟糕。
  • @ChaosPandion 同意,StringBuilder 非常适合大量连接...
  • 或更好地使用数组(你也可以在需要的地方前后检查),如果你需要搜索,则使用 IndexOf,如果你知道最终数组大小,则使用字符串构造函数......
  • @NSGaga 一个字符串已经存在并暴露了一个迭代器......尝试做foo[5]
  • 我在说什么 - 不要列举使用 [] 等我们误解了
【解决方案2】:
var output = ""; // or use StringBuilder
foreach(char c in text)
{
     output += c; // if or do with c what you need
}

...这是您需要的吗?
字符串是IEnumerable&lt;char&gt;

【讨论】:

    猜你喜欢
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2014-02-04
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    相关资源
    最近更新 更多