我正在为学校做一项家庭作业,作业状态为“获得两个单词作为输入,并垂直打印一个单词,水平打印一个单词,以便它们相交”。

一个例子:

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 已采纳

这里有一些指针。

  1. 使用indexOf查找相交点。

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

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

  2. 当没有共同的字符时,请记住要处理特殊情况。

  3. 您不需要嵌套的while和for循环。 一个或另一个就是所需要的。

  ask by Zach Cunningham translate from so

未解决问题?本站智能推荐:

2回复

如何使我的单词之一垂直打印?

该代码中的单词应该以一个普通字母相交,并打印出尽可能多的单词,它们可以彼此相交。 我有正确的时间,但是单词的格式不正确。 应该看起来像这样: 但是我的打印如下: 我的代码显示在下面,导致此问题的我的打印方法出了什么问题?
3回复

我需要打印一个等于该单词中字符数量的单词

...在Java中使用for循环。 例如,您好将被打印五次。 到目前为止,这是我的代码: 我们必须使用扫描仪包装。 抱歉,如果这真的很基础,但是我才刚开始,在任何地方都找不到答案!
5回复

麻烦使用For循环使两个不同字符的三角形适合矩形?

输入示例: 输出示例(假设空格=新行。) 到目前为止,尝试打印它的代码片段是(假设所有变量都是预定义的): 它只是打印:(假设空格=新行。) 对于5的输入。我不太确定如何使其仅打印其相应整数值的次数。 谁能解释一下?
1回复

我正在尝试在Java中创建一个填字游戏解算器

我试图弄清楚如何独自在Java中创建一个难题求解器,但遇到了麻烦。 我能够从文件中读取输入,该文件中填字游戏的维度存储在数组中。 我在实际拼图中搜索单词时遇到问题。 这是我到目前为止的内容: 编辑:我在代码中添加了一些注释,我刚刚从最近读过的《生日快乐堆栈溢出》的一篇文章中还记得,
3回复

如何在另一个类中打印此for循环,以及如何返回其值?

好的,所以我有一个此类,该类使用多参数构造函数创建一个带有五个的学生资料的数组,而最后一个使用零参数构造函数创建一个学生资料的数组。 然后,将数组的每个值设置为学生配置文件之一,并使用for循环遍历数组。 我的问题是如何使用数组将该值返回给方法,以便可以从其他类调用它以进行打印? 我应
2回复

有没有办法可以在不创建另一个数组的情况下在数组中排除非重复数字?

我需要创建一个输出,从两个数组中获取数字: a和b ; 并打印出独特的,但只打印一次。 所以,例如,如果有 输出应为7, 4, 9 NOT 4, 4, 7, 4, 9 在任务中,它直接说:“不要创建任何辅助数组,集合或字符串。不要使用标准java.lang以外的包中的任何类。不
1回复

Java填字游戏:有没有办法计算打印的单词前后的空格?

词:测试文件 我正在为我的学校设置一个程序,但我遇到了麻烦。 你能帮我找到一种方法来打印所打印单词前后的空格吗?
1回复

不使用 for 循环打印出数组的最后一个数字

结果给了我这个,但没有打印出最后一个 int (200)。 我在 main 方法中添加了一些随机数,并通过使用 for 循环将它们按顺序排列。 但是,它完全忽略了最后一个(最大的)整数,即 200。我该如何解决这个问题? 这是我添加随机整数的主要方法。 这是用于打印按从小到大排序的所有整数的