Java 和 C# 中 StringBuilder 的区别
我正在将 Java 代码转换为 C#。 Java 中的 StringBuilder 类似乎比 C# 中的方法多得多。 Java 功能感兴趣
sb.indexOf(s);
sb.charAt(i);
sb.deleteCharAt(i);
我对(比如说) C# 中似乎缺少的
。我想前两个可以建模,
sb.ToString().IndexOf(s);
sb.ToString().CharAt(i);
但第三个会在 sb 内容的副本而不是实际内容上进行操作吗?
是否有一种通用方法可以将此功能添加到所有缺失的方法中?
I am converting Java code to C#. The StringBuilder class in Java seems to have many more methods than the C# one. I am interested in (say) the Java functionality
sb.indexOf(s);
sb.charAt(i);
sb.deleteCharAt(i);
which seems to be missing in C#.
I suppose the first two could be modelled by
sb.ToString().IndexOf(s);
sb.ToString().CharAt(i);
but would the third operate on a copy of the contents of the sb rather than the actual contents?
Is there a common way of adding this functionality to all missing methods?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用 .charAt 的 Chars 成员集合。同样,您可以使用 .Remove(i,1) 删除位置 i 处的单个字符。
You can use the Chars member collection for .charAt. Similarly, you can use .Remove(i,1) to remove a single char at position i.
对于第三个,您可以使用 删除方法:
For the third you could use the Remove method:
您可以使用如下扩展方法:
You could use extension methods like the following:
StringBuilder 有一个索引器,这意味着您可以使用 sb[i] 简单地访问单个字符
StringBuilder has an indexer, that means you can simply access single characters using sb[i]