Java 和 C# 中 StringBuilder 的区别

发布于 2024-08-07 22:58:56 字数 348 浏览 6 评论 0原文

我正在将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

欢你一世 2024-08-14 22:58:56

您可以使用 .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.

舂唻埖巳落 2024-08-14 22:58:56

对于第三个,您可以使用 删除方法:

sb.Remove(i, 1);

For the third you could use the Remove method:

sb.Remove(i, 1);
独享拥抱 2024-08-14 22:58:56

您可以使用如下扩展方法:

    static class Extensions
    {
        public static int IndexOf(this StringBuilder sb, string value)
        {
            return sb.ToString().IndexOf(value);
        }

//if you must use CharAt instead of indexer
        public static int CharAt(this StringBuilder sb, int index)
        {
            return sb[index];
        }
    }

You could use extension methods like the following:

    static class Extensions
    {
        public static int IndexOf(this StringBuilder sb, string value)
        {
            return sb.ToString().IndexOf(value);
        }

//if you must use CharAt instead of indexer
        public static int CharAt(this StringBuilder sb, int index)
        {
            return sb[index];
        }
    }
时光倒影 2024-08-14 22:58:56

StringBuilder 有一个索引器,这意味着您可以使用 sb[i] 简单地访问单个字符

StringBuilder has an indexer, that means you can simply access single characters using sb[i]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文