Есть ли способ сделать каждый принт по-разному - PullRequest
0 голосов
/ 03 июля 2019

Как сделать цикл на этом шаблоне, который может сделать шаблон таким, каким он может стать (который X заменит _). Я знаю, что могу сделать так, как определим n = 0 и n + 2 для каждого цикла и приращения.на 2, но возникает проблема, которая станет такой:

XX_XXXXXXXXXX    
XX_X_XXXXXXXX    
XX_X_X_XXXXXX
public static void main(String[] args)
{
    String a = "XXXXXXXXXXXXX";
    char[]abc = a.toCharArray();
    for(int i=0;i<3;i++)
    {
        int n=2;
        abc[n]='_';
        a = String.valueOf(abc);
        System.out.println(abc);
    }
}

Код, который я разместил выше, - это код без цикла
Я ожидаю, что результат будет таким, еслицикл успешен

XX_XXXXXXXXXX    
XXXX_XXXXXXXX    
XXXXXX_XXXXXX  

Любое предложение или помощь будут оценены

Ответы [ 2 ]

2 голосов
/ 04 июля 2019

Вы должны сделать следующее, чтобы ваш вывод выглядел как положено:

  1. Использовать переменную цикла i вместо блочной переменной n в качестве индекса массива.Это гарантирует, что позиция '_' смещается на каждом шаге
  2. . После печати каждый шаг возвращает '_' в массиве обратно на 'X'.Это делает смещение '_' вместо повторения

Я намеренно не даю никакого кода, потому что проблема больше похожа на задачу обучения, и поиск правильных инструкций должен сработать.

0 голосов
/ 04 июля 2019

Вы можете легко добавлять и удерживать места, которые вы хотите иметь символом '_', используя List целых чисел.Каждый раз, когда запускается основной цикл, вы можете получить доступ к намеченным местам с помощью вложенного цикла.В конце вы добавляете следующее '_' место, которое будет использоваться в следующий раз.

import java.util.ArrayList;
import java.util.List;

public static void main(String[] args) {
    String a = "XXXXXXXXXXXXX";
    char[]abc = a.toCharArray();

    List<Integer> placeHolders = new ArrayList<>();
    placeHolders.add(2);
    for(int i=0;i<3;i++)
    {
        for(int j = 0; j < placeHolders.size(); j++)
            abc[placeHolders.get(j)]='_';

        System.out.println(abc);

        //Accessing the latest record of the list
        placeHolders.add(placeHolders.get(placeHolders.size()-1)+2);

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...