Java 如何让两个单词在相交字符处相交。(一个垂直,另一个水平)
我正在为学校做一个家庭作业,作业上写着“输入两个单词,一个垂直打印,一个水平打印,以便它们相交” 例如:Java 如何让两个单词在相交字符处相交。(一个垂直,另一个水平),java,for-loop,printing,crossword,Java,For Loop,Printing,Crossword,我正在为学校做一个家庭作业,作业上写着“输入两个单词,一个垂直打印,一个水平打印,以便它们相交” 例如: vertical: coffee horizontal: suffering c o suffering f e e 当我进入咖啡和痛苦中时,我得到这个作为输出: vertical: coffee horizontal: suffering c o suffering f f e e 我的代码如下: public static vo
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));
}
}
publicstaticvoidmain(字符串[]args){
扫描仪kb=新扫描仪(System.in);
系统输出打印(“垂直:”);
String vertical=kb.next().toLowerCase();
系统输出打印(“水平:”);
字符串horizontal=kb.next().toLowerCase();
布尔索引=真;
int indexOf=0;
StringBuilder空间=新建StringBuilder();
while(索引){
对于(inti=1;i,这里有一些指针
使用indexOf查找交点
水平字的索引是垂直字符缩进的距离。
一旦找到索引,通过执行以下操作即可轻松获得间距:
spaces=”“.substring(0,indexOf);
垂直单词的索引是在什么点打印水平单词
而不是垂直字符
记住在没有共同字符的情况下处理特殊情况
您不需要嵌套的while和for循环,只需要其中一个
您有几个问题。第一个问题是当i==indexOf时打印两个字符串。第二个问题更微妙。当垂直单词比水平单词短时会发生什么情况?如果索引太偏右,则水平单词永远不会被打印。感谢您的帮助。打印i的理想方式是什么将水平字放在正确的位置,而不是依靠垂直字符放在正确的位置?像通常使用缩进和字符一样打印垂直字符。当indexOf=正确的位置时,打印水平字而不是垂直字符。