代码之家  ›  专栏  ›  技术社区  ›  hesolar

使用区间在c#中进行字符串切片

  •  -1
  • hesolar  · 技术社区  · 2 年前

    在python中,有一些方法允许您使用间隔(切片)访问字符串:

    从位置2到位置5(不包括)获取字符:

    b = "Hello, World!"
    print(b[2:5])
    

    3 回复  |  直到 2 年前
        1
  •  4
  •   Klaus Gütter    2 年前

    在C#8.0(或更高版本)中,您可以使用 ,例如

     var b = "Hello, World!";
    
     var result = b[2..5];
    

    或者在旧的c#版本上, Substring :

     var b = "Hello, World!";
    
     // start from 2nd char (0-bazed), take 3 characters
     var result = b.Substring(2, 3);
    

    最后,您可以使用 林克

     var b = "Hello, World!";
    
     // Skip first 2 characters, take 3 chars and concat back to the string 
     var result = string.Concat(b
       .Skip(2)
       .Take(3)); 
    
        2
  •  1
  •   James Ellis    2 年前

    可以使用子字符串。

    string hw = "hello world";
    Console.WriteLine(hw.Substring(1,1), hw.Substring(5, 1));
    

    或者将其转换为字符数组

    string hw = "hello world";
    var array = hw.ToCharArray();
    Console.WriteLine(array[3]);
    
        3
  •  1
  •   tmaj    2 年前

    b = "Hello, World!"
    Console.WriteLine(b[2..5]
    

    此打印:

    llo
    

    最好的官方指南是 Indices and ranges .


    b = "Hello, World!"
    print(b[2:15])
    
    llo, World!
    

    在C中:

    var b = "Hello, World!";
    Console.WriteLine(b[2..15]);
    
    Unhandled exception. System.ArgumentOutOfRangeException: Index and length must refer to a location within the string. (Parameter 'length')