【问题标题】:get last character in a string获取字符串中的最后一个字符
【发布时间】:2012-11-02 11:42:17
【问题描述】:

我是开发 Windows Phone 应用程序的新手。现在我正在使用 T9 键盘创建一个文本消息应用程序,我已经设计了按钮。现在我想要的是如何获取字符串中的最后一个字符?示例字符串是“clyde”,我怎样才能从该字符串中获取 char 'e'? 我使用 Visual Basic 作为语言。

更新:现在可以使用了,我使用了以下代码:

string s = "clyde";
char e = s(s.Length-1);

【问题讨论】:

    标签: vb.net windows-phone


    【解决方案1】:

    我不确定您使用的是哪种语言,但在 C# 中它是这样完成的

    string s = "clyde";
    char e = s[s.Length-1];
    

    它在每种语言中都非常相似。

    【讨论】:

    • 这个有效,非常感谢。但是括号有错误所以我将括号改为括号。
    • 括号对 C# 是正确的,括号是对 Visual Basic 的
    【解决方案2】:

    C#:

    string clyde = "clyde"; 
    char last = clyde[clyde.Length - 1];
    

    VB.NET

    string clyde = "clyde"; 
    char last = clyde(clyde.Length - 1);
    

    【讨论】:

    • vb.net 的例子不是 vb.net
    • 最后变暗为 Char = clyde.Last
    【解决方案3】:

    我会用 linq 做到这一点:-

       string clyde = "Clyde";
       char lastChar = clyde.Last();
    

    只是我的喜好。

    【讨论】:

    • 这是一种非常低效的方法。此外,没有必要将 char 转换为字符串。
    • 供将来参考,您能否解释一下使用 LINQ 是如何低效的。只是为了让我了解它,因为我没有那么有经验。
    • Enumerable.Last 仅针对 IList/ICollection 类型进行了优化,其中字符串仅实现 [] 重载。正如您在msdn.microsoft.com/en-us/library/system.string.aspx 上看到的那样,它既没有实现 IList 也没有实现 ICollection,因此 IEnumerable 优化不起作用。因此,它将遍历集合中的所有项目(字符串中的所有字符),并选择最后一个。这是一个 O(n) 操作而不是 O(1)。
    【解决方案4】:

    C#:

    String string = "string";
    Char lastLetter = string[string.Length - 1];
    

    VB.NET:

    Dim sInput As String  = "sInput"
    Dim lastLetter As Char = ChrW(sInput.Length - 1)
    

    【讨论】:

      【解决方案5】:

      F#:

      "input" |> Seq.last             //val it : char = 't'
      "input" |> Seq.last |> string   //val it : string = "t"
      

      【讨论】:

        【解决方案6】:

        Dim s As String = "Clyde"

        s = Mid(StrReverse(s), 1, 1)

        【讨论】:

          猜你喜欢
          • 2021-07-18
          • 2011-07-07
          • 2011-08-17
          • 2011-03-29
          • 1970-01-01
          • 1970-01-01
          • 2013-03-17
          相关资源
          最近更新 更多