Csharp/C#教程:将字符句点替换为莫尔斯语代码会使TextBox变得混乱分享


将字符句点替换为莫尔斯语代码会使TextBox变得混乱

我正在尝试将所有字符替换为他们的莫尔斯代码等价物。 我使用了textBlock.Text.Replace()方法来实现这一点,它工作正常,直到我达到句点字符。 当我尝试用“。-.- .-”替换它时,它工作正常但是现在所有其他角色都搞砸了。 在人物角色之前,一切都很好。

这是代码

namespace PivotApp1 { public partial class Textmorse : PhoneApplicationPage { public string[] aakkoset = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V","W", "X", "Y", "Z", "Ä", "Ö", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "?", ":", ",", "@", "/", "=", " ", "."}; public string[] morse = { ".- ", "-... ", "-.-. ", "-.. ", ". ", "..-. ", "--. ", ".... ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-. ", "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ", "-..- ", "-.-- ", "--.. ", ".-.- ", "---. ", "----- ", ".---- ", "..--- ", "...-- ", "....- ", "..... ", "-.... ", "--... ", "---.. ","----. ", "..--.. ", "---... ", "-....- ", ".--.-. ", "-..-. ", "-...- ", " ", ".-.-.-"}; public Textmorse() { InitializeComponent(); } private void TBoxText1_TextChanged(object sender, TextChangedEventArgs e) { CreateMorseText(); } public void CreateMorseText() { tBlockMorse1.Text = TBoxText1.Text.ToUpper() .Replace(aakkoset[0], morse[0]) .Replace(aakkoset[1], morse[1]) .Replace(aakkoset[2], morse[2]) .Replace(aakkoset[3], morse[3]) .Replace(aakkoset[4], morse[4]) .Replace(aakkoset[5], morse[5]) .Replace(aakkoset[6], morse[6]) .Replace(aakkoset[7], morse[7]) .Replace(aakkoset[8], morse[8]) .Replace(aakkoset[9], morse[9]) .Replace(aakkoset[10], morse[10]) .Replace(aakkoset[11], morse[11]) .Replace(aakkoset[12], morse[12]) .Replace(aakkoset[13], morse[13]) .Replace(aakkoset[14], morse[14]) .Replace(aakkoset[15], morse[15]) .Replace(aakkoset[16], morse[16]) .Replace(aakkoset[17], morse[17]) .Replace(aakkoset[18], morse[18]) .Replace(aakkoset[19], morse[19]) .Replace(aakkoset[20], morse[20]) .Replace(aakkoset[21], morse[21]) .Replace(aakkoset[22], morse[22]) .Replace(aakkoset[23], morse[23]) .Replace(aakkoset[24], morse[24]) .Replace(aakkoset[25], morse[25]) .Replace(aakkoset[26], morse[26]) .Replace(aakkoset[27], morse[27]) .Replace(aakkoset[28], morse[28]) .Replace(aakkoset[29], morse[29]) .Replace(aakkoset[30], morse[30]) .Replace(aakkoset[31], morse[31]) .Replace(aakkoset[32], morse[32]) .Replace(aakkoset[33], morse[33]) .Replace(aakkoset[34], morse[34]) .Replace(aakkoset[35], morse[35]) .Replace(aakkoset[36], morse[36]) .Replace(aakkoset[37], morse[37]) .Replace(aakkoset[38], morse[38]) .Replace(aakkoset[39], morse[39]) .Replace(aakkoset[40], morse[40]) .Replace(aakkoset[41], morse[41]) .Replace(aakkoset[42], morse[42]) .Replace(aakkoset[43], morse[43]) .Replace(aakkoset[44], morse[44]) .Replace(aakkoset[45], morse[45]); } private void TBoxText1_Loaded(object sender, RoutedEventArgs e) { TBoxText1.Focus(); } } } 

我会将句号替换为.Replace(aakoset[45], morse[45])到开头。

可能发生的事情是你用dits(句号)和破折号替换所有你的角色,当“句号”被替换时,它会将你所有的“dits”视为句号。

你明白为什么会这样,不是吗? 当您搜索句点时,无法区分哪些句点存在,因为它们位于原始字符串中,哪些句点存在,因为它们是某些其他字符的莫尔斯代码序列的一部分。

首先执行句点,或者更健壮地遍历字符串一次,并在每个字符到来时替换它们。

我会使用字典或某种KeyValue对集合

这个页面有一个很好的例子。

首先是所有时期而不是最后时期? D’OH! 太慢了。

上述就是C#学习教程:将字符句点替换为莫尔斯语代码会使TextBox变得混乱分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1002545.html

(0)
上一篇 2021年12月28日
下一篇 2021年12月28日

精彩推荐