如何解决如何使用通配符在数组中搜索字符串? C#
该参数是一个字符串,每个单词中都有一个数字。我需要搜索该单词的号码。到目前为止,我的解决方案是将字符串分成字符串数组,然后使用Array.IndexOf
查找我搜索的匹配索引。但是我还没有找到成功使用通配符的方法。使用string.Contains
似乎可行,但使用Array.IndexOf
进行搜索则无效。
如何在字符串数组元素中搜索包含数字的单词并返回其索引? 1-9。
public static string Order(string words)
{
string[] wordArr = words.Split(' ');
string[] wordsOrdered = new string[words.Length];
int k;
for (int i = 0,j = 1; i < wordsOrdered.Length; i++,j++)
{
if (words.Contains($"{j}"))
{
k = Array.IndexOf(wordArr,$"{j}");
if (k != -1)
wordsOrdered[i] = wordArr[k];
}
}
return words = wordsOrdered.ToString();
}
解决方法
查找您的单词中是否存在数字的正则表达式似乎是最简单的解决方案
public static string Order(string words)
{
string[] wordArr = words.Split(' ');
string[] wordsOrdered = new string[wordArr.Length];
Regex r = new Regex(@"\d+");
for (int i = 0; i < wordArr.Length; i++)
{
var m = r.Match(wordArr[i]);
if(m.Success)
{
int index = Convert.ToInt32(m.Value);
wordsOrdered[index-1] = wordArr[i];
}
}
return string.Join(" ",wordsOrdered);
}
此代码假定您所有单词的内部都有至少一个数字,而最小数字从1开始。(A 0将导致索引超出范围异常),并且您不应拥有大于该数字的数字输入单词的数量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。