簡體   English   中英

如何更改字符串中的單個字符

[英]How do I change a single character in a string

我正在使用 C# 表單中的數據網格視圖創建一個吃豆子游戲。 我從一個字符串創建了游戲地圖:

private string INITMAP =               "wwwwwwwwwwwwwwwwwwww"+
                                       "wkkkkkkkkkkkkkkkkkkw"+
                                       "wkwwkwwwwkwwwwwwkwkw"+
                                       "wkwwkkkkkkwwkkkkkwkw"+
                                       "wkkkkwwwwkwwkwkwkkkw"+
                                       "wkwwkwkkkkwwkwkwkwkw"+
                                       "wkwwkwwwwkwwkwwwkwkw"+
                                       "wkwwkkbbbbbbbkkkkwkw"+
                                       "wkwwwwbwbbbwbwwkwkkw"+
                                       "wkkkkkbwbbbwbwwkkwkw"+
                                       "wkwkwwbwbbbwbkkkwkkw"+
                                       "wkwwkwbwwwwwbwwwwwkw"+
                                       "wkkkkkbbbbbbbkkkkkkw"+
                                       "wkwwwwkwkwwwwkwkwwkw"+
                                       "wkwkkkkwkkkwwkwkkwkw"+
                                       "wkwwkwkwkwkwwkkkwwkw"+
                                       "wkkkkwkwkwkwwkwkkkkw"+
                                       "wkwwkwkwkwkwwkwwkwkw"+
                                       "wkkkkkkkkkkkkkkkkkkw"+
                                       "wwwwwwwwwwwwwwwwwwww";
public void Draw()
int totalCells = NROWSCOLUMNS * NROWSCOLUMNS;

        for (int i = 0; i < totalCells; i++)
        {
            int nRow = i / NROWSCOLUMNS;
            int nColumn = i % NROWSCOLUMNS;

            switch (map.Substring(i, 1))
            {
                case "w":
                    Rows[nRow].Cells[nColumn].Value = wall;
                    break;
                case "k":
                    Rows[nRow].Cells[nColumn].Value = kibble;
                    break;
                case "b":
                    Rows[nRow].Cells[nColumn].Value = blank;
                    break;
                default:
                    MessageBox.Show("Unidentified value in string");
                    break;
            }
        }

然后我使用上面的代碼將圖像繪制到每個單元格中。

當 pacman 遇到粗磨時,我需要它將字符串中的“k”替換為“b”。 例如,如果粗磨食物在數據網格視圖上位於 (1,1),我需要知道如何將 INITMAP 字符串中位置 21 處的“k”更改為“b”,同時保持其他所有內容相同。

當游戲地圖在每個計時器滴答時繪制到網格視圖時,我不能只是將該單元格的圖像更改為空白圖像,因此空白將再次被該粗磨食物替換。

一種方法是獲取字母的坐標,正如 Joel Coehoorn 提到的,使用子字符串如下:

str = str.Substring(0, coordinate) + 'b' + str.Substring(coordinate+1, str.length())

其中坐標是字符串中字符的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM