C#找出字符串中最长的英文字母?

如:"今晚已经吃饭了abc123蛋炒饭a12,b123",输出abc123

using System.Text.RegularExpressions;

string input = "今晚已经吃饭了abc123蛋炒饭a12,b123";

string longest = Regex.Matches(input, @"[a-zA-Z0-9]+")

    .OfType<Match>().Select(m => m.Groups[0].Value)

    .OrderByDescending(x => x.Length).First();

Console.WriteLine(longest);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-03
用正则匹配写吧。用上边C++的遍历字符也可以
int i = 0;
string maxstring="";
string tests = "今晚已经吃饭了abc123蛋炒饭a12,b123";
string[] te = System.Text.RegularExpressions.Regex.Split(tests, @"[^a-z0-9]");
foreach (string s in te)
{
if(s=="")
{
continue;
}
if(s.Length>i)
{
maxstring = s;
i = s.Length;
}
}
Console.WriteLine(maxstring);
第2个回答  2021-12-03
在字符串中找出连续最长的英文字符串 1、不区分大小写 2、返回连续最长串的长度 3、拷贝给新串 例如:输入123abcdefg2141as324 返回最长字串为abcdefg 字串长度
第3个回答  2021-12-02
#include<stdio.h>
#include <string.h>
void max(char a[])//函数求最长单词
{
int i,j;
int count = 0;
int max = 0;
char b[100];
int k;
for(i = 0; i <= strlen(a); i++)
{
if(a[i] != ' ' && a[i] !='\t' && a[i]!= '\0'&&a[i]!=',' )
count ++;
else if(a[i] == ' ' || a[i] == '\t' || a[i] == '\0'||a[i]==',')
{
if(max < count)
{
k=0;
max = count;
for(j = i-max; j < i; j++)
b[k++] = a[j];
b[k] = '\0';
}
count = 0;

}
}
printf("最长单词为:");
puts(b);
}
int main()
{
char a[80];
gets(a);
max(a);
}追问

学长,有C#语言的吗

相似回答