为了账号安全,请及时绑定邮箱和手机立即绑定

如何让两个单词在相交的字符处交叉。(一个垂直,另一个水平)

如何让两个单词在相交的字符处交叉。(一个垂直,另一个水平)

慕慕森 2023-08-09 15:44:03
我正在为学校做一份家庭作业,作业规定“输入两个单词,并垂直打印一个单词,水平打印一个单词,以便它们相交”。一个例子:vertical: coffeehorizontal: suffering  c  osuffering  f  e  e当我进入咖啡和痛苦时,我得到以下输出:vertical: coffeehorizontal: suffering   c   osuffering   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 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这里有一些提示。

  1. 使用indexOf查找交点。

  2. 水平字的索引是垂直字符缩进的距离。找到索引后,可以通过执行以下操作轻松获得间距:

     spaces = "                        ".substring(0,indexOf);
  1. 垂直单词的索引是在什么点打印水平单词而不是垂直字符。

  2. 请记住在没有共同字符时处理特殊情况。

  3. 您不需要嵌套的 while 和 for 循环。只需要其中之一即可。


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 57 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信