【发布时间】:2020-05-10 14:42:26
【问题描述】:
您好,我们正在做这个编程练习:String doubles。
我们想通过详细的解释(如果可能的话,还有更多的例子一步一步)知道为什么这个代码:
using System;
using System.Text;
public static class Kata
{
public static string Doubles(string str)
{
Console.WriteLine("str: "+str);
for(int i=0; i<str.Length-1;i++){
if(str[i]==str[i+1]){
str=str.Remove(i--,2); //➖➖ operator does not store the modified i value inside i?
Console.WriteLine("str: "+str);
}
}
return str;
}
}
行为不同于:
using System;
using System.Text;
public static class Kata
{
public static string Doubles(string str)
{
Console.WriteLine("str: "+str);
for(int i=0; i<str.Length-1;i++){
if(str[i]==str[i+1]){
str=str.Remove(i,2);
Console.WriteLine("str: "+str);
i-=1; //➖= operator DOES store the modified i value inside i?
}
}
return str;
}
}
我们已阅读:
编辑:例如使用以下字符串:
zpezyhgwqevkekipkxboraceiehzpvajbjalaymsgvqlepelorhjgznaqtaghusuiypywzthoxasudhterdcwzvgyflmcgbjgfwqvefgmimdnzfsrgcpdqewohehvqlphqyzjvwpnbmpthydaiszcgnealtybeydagjvkndocgibgmxmnadtyxcynidjsxluzxelamjmpaxlfkjvsghmslztxuvevfymnawxwrtmnqinksdiopjwedqlnfqfqjblyfnlzanvybclifrmqfwczavthkdnvimztxucqjirndaediodolnylxkueowazqcdzilusmuimstcgvyrtolwnaxbmirxawfuwulawaeclrabiabhworlvpgrqnamqprwxmzegtrljvzwtlgkametzgnuzrlwawbwbdwgbkelrutpfgoerdmtrmjhlryouvrxkjixpyrpcpqkmfhvnajhfptpvklwcwewyrptmxrpjurafthzirncdtdachdgmtgqhqgtompqfzyuerjrolicsenpqetgedhxupmqsocbmnoebhdlcusbldyrcksjmcrofsyzjgpeqjniahdjlgmqrkoblsjdblmbhogkveotmtetjkfcqlokxudwnqxmcewmbmatosohbxyvxrjyxzuamxrmgyfbhcrhwxjloyxhizwizvhyocjvzeuonpnmazfqyezmpwdfprpyzjtinoxasnculkgitgjvwvjdrnsupdzpqesrlrsymljulsygxioemyzkxkiyvjihroxcnlikloqebavjgqamrusbtiqlzdajiuvdvcmkihcoseiwpxifwapmaxzmalvxqohazilysuvhodnphzfmuhskhqohikfbohgmjyhvrsjwzozgprjwnaioavklbnoyxejvqheypzblrzhcuoaozrmonvjgqwhaqvwuacrokinpekdiqnvwyieribtjpedqjmgznpalerexkdrbpdbkchrfl zzayilnbrcqzfwmelrnufdtobvanohrmeswmxbadvoqdesajsrlgtesvcdlyetpztoqpvbifxyrhnepxzstxcfwvsxjqdlcapdawkrwmeupgiezcuxfvmlszjkvhufenpladmhwhwabcgloeqbrfqpelilrugypcrxevpmbyzljqtxwtozskzbzkpcucmeurauledwueforkpzcmjpjwbtwqixrhdpdeqwhjvwaqfljovqzhswuxpgrmnwnykchkjgeaunvloldyvsyjogvfojyjrijdcgahgkgsdscgbesnusruyekehbwzivilerihkwslmvdodkrlpzrofyafogkhkrckwkcxafisxoasxliwfjtpmjlownxfvylmltngirymgnbhvcynxnymzobnhdwzdohexclhjyiespfvhiwkoyvbhuqkecrbdgzcewznpqdzeuvlhmwoctzwxacghgampdrkuyuwxmyecsgdzkgquhbfqpnwsxujwevlftzbnmzhvsxkzdhqfyidsekydzrpiyxvxfkfdhitjxrdwopedxwlcuqpizpgkznegcfavabpuvmhbojnclsweponyiecmspsinzdcvknhfijoupcvzxbljypmibskriurigwogafoyheyetbhnvogypkrutscqwosfotombgvzjxzvzdchgdqonicxbtmtqznuxemzdpcjkvhbcgmkvbdsdnupgzvoxuqderbhdrpjqaexqjncyvbuwfruptxseuyzcvjoxldugxixzwlspbtwhyzmsicvlywkzqhstkypqbyugrvsiedcacsdvojibyxiptzfgfaeganjngutkdnjghtpthtmdofxywvndvbzvbnhoaklwcruxylklygafybxvnbkafgshgmsclbsrdgezxctfspauwaqmazalrvzmrlsiaenzngxodhgaodhmqslztuahaihsimjlencbgqcavmvseqhwefvawalsygfpj xgqyabgfapldgyhckalodrioecjcaknrygfujuhvyzuxeuqdvoxjcypgrxrdepctfztnsptqpdwxdgxpmwoytodgejdfirseaclfvhtzcsdkzcribdaqwnjpmjmuirolotojliclulasjbdnderbintwtmuzrkdswgnhwsbovsjxotzlqvnjtmkbpopqrvmtwdnwqlgqdwhzmtyjwmrickxafqpgxwyufcgqguxthpeimpwojnhbeijtknhbcqkorunidcoxamfpnpuawkpxqwsmkajkmgnoxbabjfmghwnqsutgesbnxuydsdluzortzvajkjpwythprgbunkaedgmjvmwvzedzgjsrdoefcevcmesfehtzrtxbocadtcmrzscvhmzuxylkwqtqrsqpfhrzubaceyksqufadiozctinexikmblwlsbcbfmxpynstbktnispbfeyqgxctumjgtjnzaguoqkdfqtcmpwdjvufncmvijdvlelzsxumbxbkvbsanuqexialydawolmfnorbetjoukclumjlhntzxdepxplwxgjrwtkbjngoqotnmdeymnroxesurwlmaymrpndrqkwpjmwjlvlmprbqjmbtnrcpkunqvuxhshugyilqbnocnimnhdidbrjgyqhurpmicnwurlrzd P>
我们看到了:
【问题讨论】:
-
str的值是多少,它们的行为有什么不同? -
您使用哪些 .NET 实现(.NET Framework、.NET Core、...)?在 Framework 4 - 4.8 中运行平稳,两个函数在给定输入下的输出是相同的。
-
向您展示我使用的代码:dotnetfiddle.net/Usxucs 也许您看到了不同。