【问题标题】:VB.NET If last letter/symbol of a string is a specific symbolVB.NET 如果字符串的最后一个字母/符号是特定符号
【发布时间】:2021-09-19 20:40:20
【问题描述】:

我刚开始接触独立的 VB 编程,我发现代码与我在 excel VBA 中习惯的代码有很多不同。我的 excel VBA 中有一个代码:

Dim UserName As String
UserName = Split(Application.UserName, " ")(0)
If Right$(UserName, 1) = "s" Then UserName = Left$(UserName, Len(UserName) - 1)

提取用户名的第一个单词并查找其最后一个字母是否为“s”,在这种情况下将其删除。 我需要在 VB.NET 中做同样的事情。到目前为止我得到的是

Dim UserName As String
UserName = Split(Environment.UserName, " ")(0)
        If Str.Last(UserName) = "s" Then
            UserName = UserName.Substring(0, UserName.Length - 1)
        End If

if 语句不正确,我想知道这里是否有人可以帮助我使用该函数的正确 if 语句

【问题讨论】:

    标签: excel vba vb.net


    【解决方案1】:

    如果您想知道String 是否以特定子字符串结尾,请调用String.EndsWith 方法:

    If UserName.EndsWith("s") Then
    

    这是您应该花时间阅读文档的一个示例。如果您想用String 做某事,您可以快速阅读String 类的文档。如果您至少查看成员列表,这最多需要几分钟,那么您很有可能看到此方法并且 Bob 是您的叔叔。即使你没有看到你需要的东西,或者因为它在那个地方不存在,或者因为它不够明显,它就是你需要的东西,你也没有浪费很多时间,你可能会看到其他东西现在或以后可以使用。这些年来我通过这种方式学到了很多东西,所以我是从经验中说出来的。

    【讨论】:

    • 谢谢你,伙计!这对我有帮助,我自己想出了修剪部分。我看到 VB.NET 更像是“人类语言”?因为它不像机器 POV 那样使用更多的人类术语。我想这是习惯的问题
    • @Eduards,确实如此。由于相似性,许多人认为从一种 VB 风格转换到另一种风格非常容易,但这种相似性有时会让您感到困惑。
    • @Eduards,关于修剪要记住的一件事是,如果您使用 String.TrimEnd 方法,它将从文本末尾删除多个“s”字符(如果它们存在) .这可能不是问题,但请注意 "abcssss".TrimEnd("s"c) 会产生“abc”,而不是“abcsss”。
    • 哦,是的,我肯定只需要修剪一个“s”
    【解决方案2】:

    Right$ 函数仍然可用,只是它被移到了Strings.Right。 Left$ 和 Right$ 被移动,因此 Left$ 不会与 Form.Left

    混淆

    【讨论】:

    • 啊,好的,非常感谢,除此之外写的一模一样吗?
    • 是的,同样的论点。不客气。
    猜你喜欢
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2014-02-26
    • 2021-06-16
    相关资源
    最近更新 更多