当前位置: 首页 > 编程语言 > C#

c#-如何删除字符串数组中的元音字母?Share

时间:2023-04-10 22:16:04 C#

c#-如何删除字符串数组中的元音字母?使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.Threading.Tasks;namespacemyApp{classProgram{staticvoidMain(string[]args){string[]vowels=newstring[]{"A","a","E","e","I","i","O","o","U","u"};for(intj=0;jstring.Concat(Name.Where(C=>!vowels.Contains(C)))).ToArray();Console.WriteLine(string.Join(Environment.NewLine,names));你可以使用Regex.Replace:Regexr=newRegex("[aAeEiIoOuU]");//或者Regexr=newRegex("[aeiou]",RegexOptions.IgnoreCase);string[]names=newstring[5];names[0]="john";names[1]="samuel";names[2]="kevin";names[3]="steve";]="martyn";for(inti=0;i要使原始方法起作用,您需要添加对string.Replace的调用:names[i]=names[i].Replace(vowels[j],"");This表示“替换名称[i]中出现的任何元音[j],并将结果分配给名称[i]”。但是,您目前正在元音循环中声明名称数组,因此如果添加替换代码,你将得不到预期的结果。您还四舍五入了元音,然后是名字;从逻辑上讲,反转它可能是有意义的——这肯定会使输出结果更容易。这样的东西对你有用:string[]vowels=newstring[]{"A","a","E","e","I","i","O","o",“你”,“你”};字符串[]名称=新字符串[5];名字[0]=“约翰”;名字[1]=“塞缪尔”;名字[2]=“凯文”;名字[3]=“史蒂夫”;名字[4]=“马丁”;for(inti=0;iEDITOP在评论中询问了一个不使用Replace的示例。这是一种这样的方法(@Eser在他们的回答中还有另一种方法)。此方法迭代每个字符inputstringuntilavowels.此时,将读取到此之前的字符(不包括元音)添加到StringBuilder:publicstaticstringRemoveVowels(stringname){StringBuildernoVowels=newStringBuilder();//跟踪我们读取的最后一个索引intlastIndex=0;inti;for(i=0;i可以为数组中的每个名称调用上面的方法:for(inti=0;i至于使用哪种方法,我会选择你认为最可读的,除非你有一些特定的性能要求,我认为你需要衡量每种方法并选择最符合你要求的方法。首先,如果你正在处理一组名称,你会需要嵌套循环。你必须遍历你的名字,然后遍历每个元音。然后使用String.Replace来完成这个过程。name=name.Replace(vowels[j],String.Empty);我认为这是最简单的选择:staticvoidMain(string[]args){string[]names=newstring[]{"john","samuel","george","steve","martyn"};foreach(varnameinnames){stringwithoutVowels=newstring(name.Where(x=>!"aeiou".Contains(x)).ToArray());Console.WriteLine("输出为:"+withoutVowels);}控制台.ReadKey();}如果你碰巧也需要大写字母,那么只需使用这一行:也使用“aeiouAEIOU”并坚持第一个选项。只是为了它,极短的版本,基于Eser的回答:staticvoidMain(string[]args){string[]names=newstring[]{“johnE”,“samuel","george","steve","martyn"};Console.WriteLine(string.Join(Environment.NewLine,names.Select(s=>新字符串(s.Where(x=>!"aeiou".Contains(x)).ToArray()))));}forech(stringsinstrings){s.Replace("a","");//etc}你可以使用ToUpper/ToLower检查元音您不必列出元音两次(每个shell一次)。首先遍历每个名??字,然后遍历每个名??字的每个元音。然后,使用.Replace()删除匹配的元音这是工作示例:Fiddle:https://dotnetfiddle.net/STnyWE以上是C#学习教程的全部内容:c#-如何删除字符串数组中的元音?分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---usingSystem;公共类程序{publicstaticvoidMain(){string[]vowels=newstring[]{"A","E","I","O","U"};字符串[]名称=新字符串[5];名字[0]=“约翰”;名字[1]=“塞缪尔”;名字[2]=“凯文”;名字[3]=“史蒂夫”;名字[4]=“马丁”;for(inti=0;i本文搜集自网络,不代表立场,如涉及侵权,请点右联系管理员删除。如需转载请注明出处: