Как получить 2 слова для пересечения при пересечении символов.(Один вертикально, а другой горизонтально) - PullRequest
0 голосов
/ 19 сентября 2019

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

Пример этого:

vertical: coffee
horizontal: suffering
  c
  o
suffering
  f
  e
  e

Когда я вхожу в кофе и страдания, я получаю это как вывод:

vertical: coffee
horizontal: suffering
   c
   o
suffering
   f
   f
   e
   e

Мой код выглядит следующим образом:

public static void main(String[] args) {

    Scanner kb = new Scanner(System.in);

    System.out.print("vertical: ");
    String vertical = kb.next().toLowerCase();

    System.out.print("horizontal: ");
    String horizontal = kb.next().toLowerCase();

    boolean indexed = true;
    int indexOf = 0;
    StringBuilder spaces = new StringBuilder();

    while (indexed) {
      for (int i = 1; i <= vertical.length()-1; i++) {
        String found = vertical.substring(i - 1, i);
        spaces.append(" ");
        if (horizontal.contains(found)) {
          indexOf = i;
          indexed = false;
          break;
        }
      }
    }

    for (int i = 1; i <= vertical.length(); i++) {
      if (i == indexOf) {
        System.out.println(horizontal);
      }
      System.out.println(spaces + vertical.substring(i - 1, i));
    }
  }

1 Ответ

0 голосов
/ 19 сентября 2019

Вот несколько указателей.

  1. Используйте indexOf, чтобы найти точку пересечения.

  2. Индекс горизонтального слова указывает, как далеко отступвертикальные символы.Как только индекс найден, интервал легко получить, выполнив что-то вроде следующего:

     spaces = "                        ".substring(0,indexOf);

Индекс вертикального слова указывает, в какой точке печатать горизонтальное слово, а НЕ вертикальный символ.

Не забудьте обработать специальный случай, когда ни один символ не является общим.

Вам не требуется вложенный цикл while и for.Один или другой - все, что нужно.

...