如何让 2 个单词在交叉字符处交叉。 (一个垂直,另一个水平)
How to get 2 words to cross at intersecting characters. (One vertically and the other horizontally)
我正在为学校做家庭作业,作业状态为 "get two words as input and prints one vertically and one horizontally so that they intersect"。
这方面的一个例子:
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));
}
}
这里有一些建议。
使用indexOf求交点
横字索引是竖字缩进多少。
找到索引后,可以通过执行以下操作轻松获得间距:
spaces = " ".substring(0,indexOf);
竖字的索引是在什么点打印横字
而不是垂直字符。
记得处理没有共同字符的特殊情况。
您不需要嵌套的 while 和 for 循环。两者皆宜。
我正在为学校做家庭作业,作业状态为 "get two words as input and prints one vertically and one horizontally so that they intersect"。
这方面的一个例子:
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));
}
}
这里有一些建议。
使用indexOf求交点
横字索引是竖字缩进多少。 找到索引后,可以通过执行以下操作轻松获得间距:
spaces = " ".substring(0,indexOf);
竖字的索引是在什么点打印横字 而不是垂直字符。
记得处理没有共同字符的特殊情况。
您不需要嵌套的 while 和 for 循环。两者皆宜。