如何用C#中的数字更改字符串中的所有字符?
我想用数字更改字符,例如:a 为 1,b 为 2...z 为 26。所以字符串“hello”将是这样的:82491513621。第一个问题是:如何用最简单的方法做到这一点方式,第二:如何使用 SWITCH 语句执行此操作。我尝试过这个,但是在休息之后;它停止了。谢谢。
i want to change chars with numbers, for example: a with 1, b with 2... z with 26. so the string "hello" will be something like this: 82491513621. the first question is: how to do this with easiest way, and the second: how to do this with SWITCH statement. i tried this, but after break; it stops. thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
无论你做什么,你都需要一个循环。一个简单的开关是不够的。
一些解释:由于所有字母都有一个按字母顺序关联的数字 ASCII 代码,这意味着我们可以从代表字母的任何字符中减去“a”并加 1 以获得其在字母表中的数字排名。
如果绝对需要使用 switch 语句,则需要为字符的每个可能值编写单独的情况:
You need a loop, whatever you do. A simple switch is not enough.
Some explanation: since all letters have a numeric ASCII code associated in alphabetic order, it means that from any char representing a letter we can subtract 'a' and add 1 to get its numeric rank in the alphabet.
If using the switch statement is an absolute requirement, you will need to write a separate case for each possible value of a character:
您可以定义一个函数,如下所示:
这可以使用字典来实现:
或者使用您提到的 switch 来实现:
现在函数已准备就绪,您可以迭代字符串并对每个字符调用转换。
You could define a function like:
This could either be implemented use a dictionary:
or use switch as you mentioned:
Now the function is ready, you could just iterate through your string and call transform against each characters.
以下代码段基于字母的 ASCII 表示形式。
从字符数组:
替代方法:
注意区分大小写。上面的代码仅适用于大写字母,因为 65 是“A”(而不是“a”)的 ASCII 代码。
不要尝试 switch 语句,它看起来很糟糕。
编辑:
如果您确实想要 switch 语句,这里是:
编辑:
要获取
StringBuilder
的最终string
,请使用stringAsNumbers.ToString();
Following pieces of code are based on the ASCII representation of the letters.
From char array:
Alternate way:
Take care of the case sensitivity. The code above works for upper case only, as 65 is the ASCII code for 'A' (not 'a').
Don't try the switch statement, it'll look horrible.
EDIT:
If you really want the switch statement, here it is:
EDIT:
To get the final
string
for theStringBuilder
, usestringAsNumbers.ToString();