我正在为学校做一份家庭作业,作业规定“输入两个单词,并垂直打印一个单词,水平打印一个单词,以便它们相交”。一个例子: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个赞
这里有一些提示。
使用indexOf查找交点。
水平字的索引是垂直字符缩进的距离。找到索引后,可以通过执行以下操作轻松获得间距:
spaces = " ".substring(0,indexOf);
垂直单词的索引是在什么点打印水平单词而不是垂直字符。
请记住在没有共同字符时处理特殊情况。
您不需要嵌套的 while 和 for 循环。只需要其中之一即可。
添加回答
举报
0/150
提交
取消