Asp.net c#将字符串爆炸为数组

本文关键字:数组 字符串 net Asp | 更新日期: 2023-09-27 18:11:03

我在c#中有一个这样的字符串:

string s = "_4_5_81_9_2";

我想把它扩展成这样的数组:

string A[]={4,5,81,9,2}

在php中,我使用的是explot_function:

$A = explode("_", $s);
在c#中类似的方法是什么?

Asp.net c#将字符串爆炸为数组

正确的调用是

string s = "_4_5_81_9_2";
string[] A = s.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);

要分割的字符串开头有一个下划线。如果你只想要数字,你需要调用StringSplitOptions。RemoveEmptyEntries避免初始空白字符串

只是为了完成答案(归功于@ksven是第一个发现OP注释的人),到整数数组的转换采用这种形式

int[] numbers = A.Select(x => Convert.ToInt32(x)).ToArray();

它叫做String.Split()。你可以在这里看到参考

String s = "_4_5_81_9_2" ; 
String [] result = s.Split("_".ToCharArray(), StringSplitOption.RemoveEmptyEntries) ; 

如果你想得到一个整数数组:

 int[] result = s.Split("_".ToCharArray(), StringSplitOption.RemoveEmptyEntries).Select(c => Convert.ToInt32(c)).ToArray();  

在c#中可以使用下面的代码

string[] words = s.TrimStart('_').Split('_');

使用

string s = "_4_5_81_9_2";
String[] items = s.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);

这将删除由开始的_或双下划线产生的空项。

                        string s = "_4_5_81_9_2";
                        if(s.StartsWith("_")){
                           s = s.Substring(1).Replace('_', ',');
                        }
                        string [] s2 = s.Split(',').ToArray();
                        
                        //or simply...
                        string[] s3 = s.TrimStart('_').Split('_');
                        

                        MessageBox.Show(" s2: " + s2.GetValue(0) + "" + " s: " + s.ToString()+" s3:"+s3.GetValue(0));