从字符串末尾开始计算,删除特定位置的字符

3
我正在尝试从字符串中删除一个字符,比如说在末尾的第三个位置。我正在使用这个方法来模拟在Unity游戏中屏幕上的打字效果,就像文本编辑器一样,你可以使用箭头键移动光标来删除字符串中的字符。比如说:
"Hello World!"

按下左箭头三次后(我知道如何增加/减少此数字,但不知道要放在哪里),然后按退格键,它应该变成:
"Hello Wold!"

目前我正在使用.Remove(0, text.Length - 1)(没有直接复制/粘贴这段代码,所以可能有点偏差,只是记忆)来删除末尾的字符,但我不认为这会对此有用。感谢您提供的任何帮助!


1
我最喜欢的答案是这里被接受的答案 - 你可以避免硬编码数字。 - Michael Armes
我不相信这个方法适用于这个问题。你尝试过吗? - Jim
抱歉,表述不够清晰,但我确实尝试了,只是错过了解决方案。 - ZachHofmeister
3个回答

5
你可以使用 String.Remove 方法,它有一个重载,该重载接受起始点和要删除的字符数:
string str = "Hello World!";
string resultStr = str.Remove(str.Length - 4, 1);

在操作字符串之前,请确保先检查它的长度。


谢谢,我尝试了类似的东西,但是我搞反了。是的,我必须确保它不会减少到字符串的长度以下。 - ZachHofmeister

1
这似乎在工作:
var text = "Hello World!";
var index = 3;
text.Remove(text.Length - index - 1, 1);

0
你可以使用 Substring。
substring(int startIndex, int endIndex)

e.g

String s = substring(0, s.length()-3);//removes the last 3 strings.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接