在vb.net(或C#)中,我无法弄清楚如何将stringbuilder与字符串进行比较。我已经搜索了很多,却找不到答案。我必须编写自己的例程。有没有更好的办法?
这不起作用:
Dim s As String = "abc"
Dim sb As New StringBuilder("abc")
If sb.Equals(s) Then
Console.WriteLine(sb.ToString() + " DOES equal " + s)
Else
Console.WriteLine(sb.ToString() + " does NOT equal " + s)
End If
该代码的结果是:abc不等于abc
在不编写自己的例程的情况下,有没有办法将stringbuilder与字符串进行比较?由于我在任何地方都找不到这个问题,很可能我很想念。
最简单的方法是以StringBuilder
字符串形式获取的内容:
If sb.ToString() = s Then ...
如果您想避免创建该字符串(可能是出于内存使用方面的考虑),恐怕您必须编写自己的例程来进行比较。基本上像这样:
Public Shared Function SbEquals(sb As StringBuilder, s As String) As Boolean
If sb.Length <> s.Length Then Return False
For i As Integer = 0 to s.Length - 1
If sb(i) <> s(i) Return False
Next
Return True
End Function
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句