Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字符串中提取子字符串,直到找到逗号_C#_Asp.net_String - Fatal编程技术网

C# 从字符串中提取子字符串,直到找到逗号

C# 从字符串中提取子字符串,直到找到逗号,c#,asp.net,string,C#,Asp.net,String,我正在构建一个页面,想知道如何从字符串中提取子字符串,直到在ASP.Net C#中找到逗号。有人能帮忙吗 myString = myString.Substring(0,myString.IndexOf(',')); 如果str不包含任何逗号,则子字符串将与str相同 编辑:与大多数情况一样,此功能的性能因边缘情况而异。如果有大量的逗号,这将在堆上创建大量不使用的字符串实例。如果它是一个5000个字符的字符串,开头附近有一个逗号,那么IndexOf+Substring方法的性能会更好。但是,对

我正在构建一个页面,想知道如何从字符串中提取子字符串,直到在ASP.Net C#中找到逗号。有人能帮忙吗

myString = myString.Substring(0,myString.IndexOf(','));
如果str不包含任何逗号,则子字符串将与str相同

编辑:与大多数情况一样,此功能的性能因边缘情况而异。如果有大量的逗号,这将在堆上创建大量不使用的字符串实例。如果它是一个5000个字符的字符串,开头附近有一个逗号,那么IndexOf+Substring方法的性能会更好。但是,对于相当小的字符串,此方法可以正常工作。

您可以使用IndexOf()查找逗号的位置,然后提取子字符串。如果你确定它总是有逗号,你可以跳过检查

        string a = "asdkjafjksdlfm,dsklfmdkslfmdkslmfksd";
        int comma = a.IndexOf(',');
        string b = a;
        if (comma != -1)
        {
            b = a.Substring(0, comma);
        }
        Console.WriteLine(b);

Alina,根据你上面写的,Split会对你有用的

string[] a = comment.Split(',');
给出示例字符串,然后a[0]=“aaa”、a[1]=“bbbbb”、a[2]=“cccc”和a[3]=“dddd”


第二个参数表示零件的最大数量。指定2可以确保性能良好,即使有很多逗号。

这不应该是myString.IndexOf吗?如果字符串不包含逗号,它还会抛出ArgumentOutOfRange异常。我正在引导他走正确的道路,而不是为他编写整个解决方案!我正在完成您的回答。是的,关键是不需要检查任何内容。请注意,对于在开头附近包含逗号的大字符串,这是非常低效的
String.IndexOf
将在找到第一个逗号时停止<代码>字符串。拆分将始终贯穿整个字符串。考虑一下“你好,世界!我有一个很长的故事要告诉你。”+ [ 6000个更多的字符] +“希望你喜欢它!”这是一个巨大的减速因素。有没有人关心CPU和内存的浪费,而不仅仅是寻找代码的“美”!!!!如果用户提供一个像“-、-、-、-、-、-、-、-、-、-、-、-、-、-、-…”这样的字符串,它将生成一个包含大量字符串实例的数组,每个实例都包含一个字符“-”。实际上,可能的分配量是另一个性能问题。存在许多潜在的性能缺陷,对吗。但是,如果代码受到这些问题的影响以及影响的严重程度很大程度上取决于使用情况,因此,尽管我完全同意提及这些问题,但我不会将其作为一个有效的解决方案立即丢弃。所有这一切都归结为这样一个事实,根据下面对dove的回答中OP的评论,他实际上想要使用Split.:-)为什么不直接使用example.Split(“,”)[0]本身呢?@thecoop如果您想控制如果示例中没有逗号会产生什么结果,那么这个问题就不明确了。令人惊讶的是,在最琐碎的需求上,您可以获得如此多的差异…谢谢,我如何处理多个逗号?我想保存逗号之间的所有单词。Alina@alinastring[]results=example.Split(',');同样,您需要决定如何处理边缘情况,例如,没有逗号,逗号作为第一个字符,etcHi-Ian,谢谢,这帮助了我:)回答得好,但格式不正确(至少在.NET 4.0中是这样)。在这种情况下,拆分需要一个字符数组。i、 e.
var firstPart=str.Split(新字符[]{{'},2);
@Grax谢谢,我已经解决了。仅供参考,您不需要
char
,编译器将为您推断数组类型。
        string a = "asdkjafjksdlfm,dsklfmdkslfmdkslmfksd";
        int comma = a.IndexOf(',');
        string b = a;
        if (comma != -1)
        {
            b = a.Substring(0, comma);
        }
        Console.WriteLine(b);
string[] a = comment.Split(',');
var firstPart = str.Split(new [] { ',' }, 2)[0]