如何对字符串进行排序,但将空格保留在同一位置

Hui Liu-MSFT 40,866 信誉分 Microsoft 供应商
2024-04-05T07:48:56.95+00:00

你好

我正在尝试对包含空格的字符串进行排序。例如,字符串:“Hello World”将为“dehll loorw”。目前,当我对字符串进行排序时,空格放置在字符串的末尾,但我需要它保持在同一个位置。

谢谢。

Note:此问题总结整理于:How to sort a string, but keep spaces in the same place

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
59 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 34,501 信誉分 Microsoft 供应商
    2024-04-05T08:02:58.4233333+00:00

    您需要记录每个空格的索引并在排序后插入。 下面是一个可以参考的示例。

        Private Function SortStringToLower(ByVal input As String) As String  
            Dim indexLst As List(Of Integer) = New List(Of Integer)  
            Dim pos As Integer = input.IndexOf(" "c)  
            While pos >= 0  
                indexLst.Add(pos)  
                pos = input.IndexOf(" "c, pos + 1)  
            End While  
            Dim characters As Char() = input.ToLower.Replace(" ", "").ToArray()  
            Array.Sort(characters)  
            Dim builder As StringBuilder = New StringBuilder(New String(characters))  
            For Each index In indexLst  
                builder.Insert(index, " "c)  
            Next  
            Return builder.ToString  
        End Function  
      
        Sub Main()  
            Dim str As String = "H ello Worl d"  
            Dim result As String = SortStringToLower(str)  
            Console.WriteLine(result)  
            Console.ReadLine()  
        End Sub  
    

    结果: 99773-1.png


    如果答案有帮助,请点击“接受答案”并点赞。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助