【发布时间】:2021-10-11 11:42:28
【问题描述】:
我正在使用 C# 统一制作一个刽子手游戏。
我正在使用此代码检查单词中的字母:
string s = "Hello World";
foreach(char o in s)
{
Debug.Log(o);
}
我需要检查所有字母并检查是否有玩家输入的字母,例如我的示例o。
然后我需要将星号*代表的未知字母替换为我检查过的字母。
我必须跟踪字母的位置以便以后替换它们。
有什么方法可以跟踪字母的位置吗?
【问题讨论】:
-
字符串是字符数组,所以 s[0] 包含字母 'H' 而 s[1] 包含字母 'e'等等。你能解释一下为什么你需要知道字符串(数组)中的字母位置(索引)吗?
-
@Steve 从技术上讲,字符串不是字符数组,但它确实允许通过索引访问字符。
-
@JohnathanBarclay 字符串 是 字符数组,即连续的内存单元块,例如带有货车的火车(现在使用 unicode 和 .NET 为 2 个字节)。无论处理器的世代和类型如何,我们使用集成电路存储器技术的硅和晶体管计算机一直都是这种情况,而且永远都是这样。但是谁知道量子计算机或 DNA 计算机,例如水晶内存……出于性能原因,字符串在技术上存储在任何旧的和现代的真实计算机上的 .NET 中的 char 数组中,就像在 C 中一样。
-
@JohnathanBarclay 当然,String 类是底层 char 数组的高级包装器。也许您的意思是 String 不是 char[] 原样。确实。不假。 Is string actually an array of chars or does it just have an indexer? • How are String and Char types stored in memory in .NET? • C# How to store a string • How string is stored in C#