#c# #arrays #string #replace
#c# #массивы #строка #заменить
Вопрос:
Итак, у меня есть этот 2D-массив
string[,] board = {
{ "Patrol", "", "", "", "", "" },
{ "", "", "", "Ship", "", "" },
{ "", "", "", "", "", "Carrier" },
{ "", "Destroyer", "", "", "", "Carrier" },
{ "", "Destroyer", "", "", "", "Carrier" },
{ "", "", "", "", "", "" } };
И мне было интересно, что мне нужно будет сделать, чтобы заменить все пробелы на «X».
for (int i = 0; i < 6; i )
{
Console.WriteLine("");
for (int j = 0; j < 6; j )
{
Console.Write(string.Format("{0} ", board[i, j]));
}
}
Я использую это для вывода массива.
Комментарии:
2. Но это массив?
3. Замените пробел или просто отобразите его как
X
?
Ответ №1:
На самом деле это простая манипуляция с массивом
for (int i = 0; i < 6; i )
{
for (int j = 0; j < 6; j )
{
if (board[i,j] == "")
board[i,j] = "X";
}
}
Комментарии:
1. Ты спаситель, мне потребовалось так много времени, чтобы найти ответ на этот вопрос. Я удивлен, насколько это просто. Спасибо!
2. Если вы заменяете один символ одним символом, вы можете использовать ‘ ‘ и ‘X’, чтобы избежать ненужных строк.
Ответ №2:
Для замены пробелов на X:
for ( int indexD1 = board.GetLowerBound(0); indexD1 <= board.GetUpperBound(0); indexD1 )
for ( int indexD2 = board.GetLowerBound(1); indexD2 <= board.GetUpperBound(1); indexD2 )
board[indexD1, indexD2] = board[indexD1, indexD2].Replace(" ", "X");
Но заменить пустые строки на «X»:
for ( int indexD1 = board.GetLowerBound(0); indexD1 <= board.GetUpperBound(0); indexD1 )
for ( int indexD2 = board.GetLowerBound(1); indexD2 <= board.GetUpperBound(1); indexD2 )
if ( board[indexD1, indexD2] == "" )
board[indexD1, indexD2] = "X";
Вы также можете написать это, чтобы быть скрупулезным:
if ( string.IsNullOrEmpty(board[indexD1, indexD2]) )
Комментарии:
1. Я предполагаю, что в вашем первом фрагменте должно было быть сказано
.....Replace(" ", "X");
, отредактировано для вас. Слава проверке границ массива. 🙂2.
GetLowerBound
как правило, это немного бесполезно, если только у вас нет специального массива, который встречается редко, но представляет интересGetUpperBound
для измерения. Создание массивов с ненулевыми нижними границами в C #3. Согласен, примерно единственный раз, когда я использовал ненулевые границы, был в коллекциях OLE COM