作为一个非.net程序员,我正在寻找旧的vb函数的.net等价物left(string, length).它很懒,因为它适用于任何长度的字符串.正如预期的那样,left("foobar", 3) = "foo"最有帮助的是,left("f", 3) = "f".
在.net中string.Substring(index, length)抛出异常超出范围的所有内容.在Java中,我总是使用Apache-Commons lang.StringUtils.在Google中,我不太了解字符串函数.
编辑:
@Noldorin - 哇,谢谢你的vb.net扩展!我第一次遇到,虽然我花了几秒钟在c#中做同样的事情:
public static class Utils
{
public static string Left(this string str, int length)
{
return str.Substring(0, Math.Min(length, str.Length));
}
}
Run Code Online (Sandbox Code Playgroud)
请注意静态类和方法以及this关键字.是的,它们就像调用一样简单"foobar".Left(3).另请参见msdn上的c#extensions.
Nol*_*rin 52
这是一个可以完成这项工作的扩展方法.
<System.Runtime.CompilerServices.Extension()> _
Public Function Left(ByVal str As String, ByVal length As Integer) As String
Return str.Substring(0, Math.Min(str.Length, length))
End Function
Run Code Online (Sandbox Code Playgroud)
这意味着您可以像使用旧的VB Left函数(即Left("foobar", 3))或使用较新的VB.NET语法一样使用它,即
Dim foo = "f".Left(3) ' foo = "f"
Dim bar = "bar123".Left(3) ' bar = "bar"
Run Code Online (Sandbox Code Playgroud)
Ode*_*ded 33
另一个行选项将类似于以下内容:
myString.Substring(0, Math.Min(length, myString.Length))
Run Code Online (Sandbox Code Playgroud)
myString是您尝试使用的字符串.
Gar*_*ler 31
添加到Microsoft.VisualBasic程序库的引用,你可以使用Strings.Left这正是同样的方法.
CCo*_*ron 13
不要忘记空案例
public static string Left(this string str, int count)
{
if (string.IsNullOrEmpty(str) || count < 1)
return string.Empty;
else
return str.Substring(0,Math.Min(count, str.Length));
}
Run Code Online (Sandbox Code Playgroud)
你可以做自己的
private string left(string inString, int inInt)
{
if (inInt > inString.Length)
inInt = inString.Length;
return inString.Substring(0, inInt);
}
Run Code Online (Sandbox Code Playgroud)
编辑:我的是C#,你必须为vb更改它
using System;
public static class DataTypeExtensions
{
#region Methods
public static string Left(this string str, int length)
{
str = (str ?? string.Empty);
return str.Substring(0, Math.Min(length, str.Length));
}
public static string Right(this string str, int length)
{
str = (str ?? string.Empty);
return (str.Length >= length)
? str.Substring(str.Length - length, length)
: str;
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
不应该出错,将nulls作为空字符串返回,返回trimmed或base值.使用它像"testx".Left(4)或str.Right(12);
| 归档时间: |
|
| 查看次数: |
71922 次 |
| 最近记录: |