Извлекает подстроку из строки, пока не найдет запятую
Я строю страницу и хотел бы знать, как извлечь подстроку из строки, пока не найдет запятую в ASP.Net С#. Может кто-нибудь помочь, пожалуйста?
Ответы
Ответ 1
substring = str.Split(',')[0];
Если str не содержит запятых, подстрока будет такой же, как str.
РЕДАКТИРОВАТЬ: как и в большинстве случаев, производительность этого будет зависеть от краев. Если есть много и много запятых, это создаст много экземпляров String в куче, которые не будут использоваться. Если это строка с 5000 символами с запятой около начала, метод IndexOf + Substring будет работать намного лучше. Однако для разумно малых строк этот метод будет работать нормально.
Ответ 2
var firstPart = str.Split(new [] { ',' }, 2)[0]
Второй параметр указывает максимальное количество деталей. Указание 2 гарантирует, что производительность прекрасна, даже если есть много и много запятых.
Ответ 3
myString = myString.Substring(0,myString.IndexOf(','));
Ответ 4
Вы можете использовать IndexOf(), чтобы узнать, где находится запятая, а затем извлечь подстроку. Если вы уверены, что у вас всегда будет запятая, вы можете пропустить чек.
string a = "asdkjafjksdlfm,dsklfmdkslfmdkslmfksd";
int comma = a.IndexOf(',');
string b = a;
if (comma != -1)
{
b = a.Substring(0, comma);
}
Console.WriteLine(b);
Ответ 5
Алина, основанная на том, что вы написали выше, тогда Split будет работать для вас.
string[] a = comment.Split(',');
Учитывая вашу примерную строку, тогда [0] = "aaa", a [1] = "bbbbb", a [2] = "cccc" и a [3] = "dddd"
Ответ 6
string NoComma = "";
string example = "text before first comma, more stuff and another comma, there";
string result = example.IndexOf(',') == 0 ? NoComma : example.Split(',')[0];